summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/sources/openswitch.md96
1 files changed, 96 insertions, 0 deletions
diff --git a/docs/sources/openswitch.md b/docs/sources/openswitch.md
new file mode 100644
index 00000000..d69f3686
--- /dev/null
+++ b/docs/sources/openswitch.md
@@ -0,0 +1,96 @@
+# Coordination with OpenSwitch
+
+GoBGP will be able to coordination with [OpenSwitch](http://www.openswitch.net)
+by connecting to ovsdb using unixsocket(use [ovsdb library of golang](https://github.com/osrg/libovsdb)).
+And GoBGP will behaves as BGP agent of OpenSwitch because GoBGP can share configuration
+and routing information in coordination with OpenSwitch.
+
+This page explains how to coordination to OpenSwitch.
+And this example have step that share configuration and routing information between OpenSwitch and Gobgp in [docker container](https://hub.docker.com/r/openswitch/genericx86-64/).
+
+
+## Prerequisites
+
+- Install the docker environment referring to the [here](https://docs.docker.com/engine/installation/ubuntulinux/)
+- Install the gobgp refarring to the [here](https://github.com/osrg/gobgp/blob/master/docs/sources/getting-started.md)
+
+## Getting and Running OpenSwitch container
+- Getting image
+
+ Thera are two ways, to get OpenSwitch docker image.
+ First way, get image from DockerHub using the **docker pull** command.
+ Second way, build the iamge refarring to the [Step-by-Step Guide](http://www.openswitch.net/documents/dev/step-by-step-guide) of OpenSwitch.
+
+ - In the case of **docker pull**
+ ```bash
+ $ sudo docker pull openswitch/genericx86-64
+ $ sudo docker images
+ REPOSITORY TAG IMAGE ID CREATED SIZE
+ openswitch/genericx86-64 latest 69682b4baeba 4 months ago 321.3 MB 1.278 GB
+ ```
+
+- Running container
+
+ Share the GoBGP binary when you execute docker run command.
+ ```bash
+ sudo docker run --privileged -v /tmp:/tmp -v /dev/log:/dev/log -v /sys/fs/cgroup:/sys/fs/cgroup -v $GOPATH/bin:/home/root/bin -h ops --name ops openswitch/genericx86-64 /sbin/init &
+ $ sudo docker ps -a
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+ 4eebc0f25f9c openswitch/genericx86-64 "/sbin/init" 3 seconds ago Up 3 seconds ops
+ ```
+
+## Starting Coordination with OpenSwitch
+- Enter the OpenSwitch container
+ ```bash
+ % sudo docker exec -it ops bash
+ ```
+
+- Setting OpenSwitch
+ ```bash
+ bash-4.3# vtysh
+ switch# show running-config
+ Current configuration:
+ !
+ !
+ !
+ switch# configure terminal
+ switch(config)# router bgp 65001
+ switch(config-router)# bgp router-id 10.0.255.1
+ switch(config-router)# neighbor 10.0.255.2 remote-as 65002
+ switch(config-router)# do show running-config
+ Current configuration:
+ !
+ !
+ !
+ router bgp 65001
+ bgp router-id 10.0.255.1
+ neighbor 10.0.255.2 remote-as 65002
+ !
+ ```
+
+- Starting GoBGP
+ ```bash
+ bash-4.3# cd /home/root/bin
+ bash-4.3# gobgpd --openswitch -p
+ INFO[0000] gobgpd started
+ INFO[0000] Coordination with OpenSwitch
+ INFO[0000] Peer 10.0.255.2 is added
+ INFO[0015] Peer Up
+ ```
+
+ If GoBGP has routes in Global Rib, routes relayed to the OpenSwitch as follows:
+ ```bash
+ bash-4.3# vtysh
+ switch# show ip bgp
+ Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
+ i internal, S Stale, R Removed
+ Origin codes: i - IGP, e - EGP, ? - incomplete
+
+ Local router-id 10.0.255.1
+ Network Next Hop Metric LocPrf Weight Path
+ * 10.10.10.0/24 10.0.255.2 0 0 32768 65002 i
+ * 10.10.11.0/24 10.0.255.2 0 0 32768 65002 i
+ * 10.10.12.0/24 10.0.255.2 0 0 32768 65002 i
+ Total number of entries 3
+ ```
+