Stratum Support for Segement Rounting Suite
- Add Stratum Bmv2 switch support for SRDhcpRelay and SRRouting tests
- Add Support for 0x1 topology on a Stratum Tofino HW switch
- Support for dockerized mininet with Stratum BMv2 switches
- Update scapy driver to work with newer versions of scapy
- Simple parsing for scapy ping output
- Add support for fetching and installing external onos apps
- Add support for onos-diagnostics profiles
- Move onos log levels to params file
- Add onos cfg settings to SR tests
Change-Id: I7c4a71484c8fd5735da9ef09b96d8990283b199b
(cherry picked from commit bef6d9bd943996483fed32130cb30ad26a06aac0)
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/trellislib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/trellislib.py
index ebf6910..e02df4c 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/trellislib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/trellislib.py
@@ -9,6 +9,7 @@
sys.path.append('..')
from mininet.node import Host
from routinglib import RoutedHost, RoutedHost6, Router
+from stratum import NoOffloadHost
class TaggedRoutedHost(RoutedHost):
"""Host that can be configured with multiple IP addresses."""
@@ -24,6 +25,7 @@
intf = self.defaultIntf()
self.vlanIntf = "%s.%s" % (intf, self.vlan)
self.cmd('ip -4 addr flush dev %s' % intf)
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('ip link add link %s name %s type vlan id %s' % (intf, self.vlanIntf, self.vlan))
self.cmd('ip link set up %s' % self.vlanIntf)
@@ -38,7 +40,7 @@
self.cmd('ip link remove link %s' % self.vlanIntf)
super(TaggedRoutedHost, self).terminate()
-class DualHomedRoutedHost(Host):
+class DualHomedRoutedHost(NoOffloadHost):
def __init__(self, name, ips, gateway, *args, **kwargs):
super(DualHomedRoutedHost, self).__init__(name, **kwargs)
self.bond0 = None
@@ -72,6 +74,7 @@
self.cmd('ip link set %s master %s' % (intf2.name, self.bond0))
self.cmd('ip addr flush dev %s' % intf1.name)
self.cmd('ip addr flush dev %s' % intf2.name)
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('ip link set %s up' % self.bond0)
# NOTE: Issues with bonded intfs in mn data structures. Either only show bonded intf
# or create a custom class to handle bonded infs??
@@ -100,6 +103,7 @@
default_intf = self.defaultIntf()
self.vlanIntf = "%s.%s" % (default_intf, self.vlan)
self.cmd('ip -4 addr flush dev %s' % default_intf)
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('ip link add link %s name %s type vlan id %s' % (default_intf, self.vlanIntf, self.vlan))
self.cmd('ip link set up %s' % self.vlanIntf)
@@ -123,6 +127,7 @@
def config(self, **kwargs):
super(DhcpClient, self).config(**kwargs)
self.cmd('ip addr flush dev %s' % self.defaultIntf())
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('dhclient -q -4 -nw -pf %s -lf %s %s' % (self.pidFile, self.leaseFile, self.defaultIntf()))
def terminate(self, **kwargs):
@@ -139,6 +144,7 @@
def config(self, **kwargs):
super(Dhcp6Client, self).config(**kwargs)
self.cmd('ip -4 addr flush dev %s' % self.defaultIntf())
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('dhclient -q -6 -nw -pf %s -lf %s %s' % (self.pidFile, self.leaseFile, self.defaultIntf()))
def terminate(self, **kwargs):
@@ -214,6 +220,7 @@
super(TaggedDhcpClient, self).config(**kwargs)
self.vlanIntf = "%s.%s" % (self.defaultIntf(), self.vlan)
self.cmd('ip addr flush dev %s' % self.defaultIntf())
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('ip link add link %s name %s type vlan id %s' % (self.defaultIntf(), self.vlanIntf, self.vlan))
self.cmd('ip link set up %s' % self.vlanIntf)
self.cmd('dhclient -q -4 -nw -pf %s %s' % (self.pidFile, self.vlanIntf))
@@ -267,6 +274,7 @@
self.cmd('ip link set %s master %s' % (intf2.name, self.bond0))
self.cmd('ip addr flush dev %s' % intf1.name)
self.cmd('ip addr flush dev %s' % intf2.name)
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
self.cmd('ip link set %s up' % self.bond0)
# NOTE: Issues with bonded intfs in mn data structures. Either only show bonded intf
# or create a custom class to handle bonded infs??
@@ -284,7 +292,7 @@
self.cmd('rm -rf %s' % self.pidFile)
super(DualHomedDhcpClient, self).terminate()
-class TrellisHost(Host):
+class TrellisHost(NoOffloadHost):
def __init__(self, name, ips=[], gateway="", dualHomed=False, vlan=None, dhcpClient=False, dhcpServer=False, ipv6=False, *args, **kwargs):
super(TrellisHost, self).__init__(name, *args, **kwargs)
self.dualHomed = dualHomed
@@ -313,6 +321,10 @@
self.bondIntfs( self.intfs[0], self.intfs[1] )
self.cmd('ip %s addr flush dev %s' % ("-4" if self.ipv6 else "", self.defaultIntf()))
+ self.cmd('sysctl -w net.ipv4.ip_forward=0')
+
+ if not self.ipv6:
+ self.cmd('sysctl -w net.ipv6.conf.all.disable_ipv6=1')
if self.vlan:
# Setup vlan interface