Fix the openflow version to 1.3

- The default openflow version of ovs 2.8+ is 1.4
- Add the tips of quagga user

Change-Id: I6e7bd4989df3b63f978f915dfba44938f878bc8a
diff --git a/trellis/README.md b/trellis/README.md
index f3d0cff..c8f53d6 100644
--- a/trellis/README.md
+++ b/trellis/README.md
@@ -33,6 +33,10 @@
 ## Quagga
 Trellis needs a special FPM patch for Quagga.
 
+In order to start the quagga related daemons, you should create a user `quagga`
+and set the correct read/write permission to local state directory(`--localstatedir`)
+and configuration directory(`--sysconfdir`).
+
 ```
 git clone -b onos-1.11 https://gerrit.opencord.org/quagga
 cd quagga
diff --git a/trellis/trellis.py b/trellis/trellis.py
index dd57eb4..2e9d8bc 100755
--- a/trellis/trellis.py
+++ b/trellis/trellis.py
@@ -6,12 +6,13 @@
 from mininet.net import Mininet
 from mininet.cli import CLI
 from mininet.log import setLogLevel
-from mininet.node import RemoteController, OVSBridge, Host
+from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
 from routinglib import RoutedHost, RoutedHost6
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server
+from functools import partial
 
 class Trellis( Topo ):
     "Trellis basic topology"
@@ -109,7 +110,8 @@
     setLogLevel('debug')
     topo = Trellis()
 
-    net = Mininet(topo=topo, controller=None)
+    switch = partial(OVSSwitch, protocols='OpenFlow13')
+    net = Mininet(topo=topo, controller=None, switch=switch)
     net.addController(RemoteController('c0', ip='192.168.56.11'))
     net.addController(RemoteController('c1', ip='192.168.56.12'))
     net.addController(RemoteController('c2', ip='192.168.56.13'))
diff --git a/trellis/trellis_dualhome.py b/trellis/trellis_dualhome.py
index 534a26d..4d2b744 100755
--- a/trellis/trellis_dualhome.py
+++ b/trellis/trellis_dualhome.py
@@ -6,7 +6,7 @@
 from mininet.net import Mininet
 from mininet.cli import CLI
 from mininet.log import setLogLevel
-from mininet.node import RemoteController, OVSBridge, Host
+from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.link import TCLink
 from mininet.nodelib import NAT
 from ipaddress import ip_network
@@ -14,6 +14,7 @@
 from routinglib import RoutedHost, RoutedHost6
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import DualHomedDhcpClient
+from functools import partial
 
 class Trellis( Topo ):
     "Trellis basic topology"
@@ -177,7 +178,8 @@
     setLogLevel('debug')
     topo = Trellis()
 
-    net = Mininet(topo=topo, controller=None)
+    switch = partial(OVSSwitch, protocols='OpenFlow13')
+    net = Mininet(topo=topo, controller=None, switch=switch)
     #net.addController(RemoteController('c0', ip='192.168.56.11'))
     #net.addController(RemoteController('c1', ip='192.168.56.12'))
     #net.addController(RemoteController('c2', ip='192.168.56.13'))
diff --git a/trellis/trellis_remote_dhcp.py b/trellis/trellis_remote_dhcp.py
index 33a5974..1942dd2 100755
--- a/trellis/trellis_remote_dhcp.py
+++ b/trellis/trellis_remote_dhcp.py
@@ -6,12 +6,13 @@
 from mininet.net import Mininet
 from mininet.cli import CLI
 from mininet.log import setLogLevel
-from mininet.node import RemoteController, OVSBridge, Host
+from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
 from routinglib import RoutedHost
 from trellislib import DhcpClient, DhcpServer, DhcpRelay
+from functools import partial
 
 class Trellis( Topo ):
     "Trellis basic topology"
@@ -117,7 +118,8 @@
     setLogLevel('debug')
     topo = Trellis()
 
-    net = Mininet(topo=topo, controller=None)
+    switch = partial(OVSSwitch, protocols='OpenFlow13')
+    net = Mininet(topo=topo, controller=None, switch=switch)
     net.addController(RemoteController('c0', ip='192.168.56.11'))
     net.addController(RemoteController('c1', ip='192.168.56.12'))
     net.addController(RemoteController('c2', ip='192.168.56.13'))
diff --git a/trellis/trellis_vlan.py b/trellis/trellis_vlan.py
index e8caf95..0000f62 100755
--- a/trellis/trellis_vlan.py
+++ b/trellis/trellis_vlan.py
@@ -6,13 +6,14 @@
 from mininet.net import Mininet
 from mininet.cli import CLI
 from mininet.log import setLogLevel
-from mininet.node import RemoteController, OVSBridge, Host
+from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
 from routinglib import RoutedHost
 from trellislib import DhcpClient, DhcpServer
 from trellislib import TaggedDhcpClient, TaggedDhcpServer
+from functools import partial
 
 class Trellis( Topo ):
     "Trellis basic topology"
@@ -105,7 +106,8 @@
     setLogLevel('debug')
     topo = Trellis()
 
-    net = Mininet(topo=topo, controller=None)
+    switch = partial(OVSSwitch, protocols='OpenFlow13')
+    net = Mininet(topo=topo, controller=None, switch=switch)
     net.addController(RemoteController('c0', ip='192.168.56.11'))
     net.addController(RemoteController('c1', ip='192.168.56.12'))
     net.addController(RemoteController('c2', ip='192.168.56.13'))