Disable NIC offloading such that this NAT can be used with user space OVS

Change-Id: I991c069e647107fd8de8f7e474da209ea215aff1
diff --git a/trellis/trellis.py b/trellis/trellis.py
index 61a0d88..d129e0e 100755
--- a/trellis/trellis.py
+++ b/trellis/trellis.py
@@ -7,10 +7,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 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 routinglib import RoutedHost, RoutedHost6, UserNAT
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
 from functools import partial
@@ -73,7 +72,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_double_tagged.py b/trellis/trellis_double_tagged.py
index c4c4748..e2182a5 100755
--- a/trellis/trellis_double_tagged.py
+++ b/trellis/trellis_double_tagged.py
@@ -8,10 +8,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 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 routinglib import RoutedHost, RoutedHost6, UserNAT
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server, DoubleTaggedRoutedHost
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
 from functools import partial
@@ -77,7 +76,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_dualhome.py b/trellis/trellis_dualhome.py
index 7272dde..5b7af5c 100755
--- a/trellis/trellis_dualhome.py
+++ b/trellis/trellis_dualhome.py
@@ -8,10 +8,9 @@
 from mininet.log import setLogLevel
 from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.link import TCLink
-from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
-from routinglib import RoutedHost, RoutedHost6
+from routinglib import RoutedHost, RoutedHost6, UserNAT
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import DualHomedDhcpClient
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
@@ -98,7 +97,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_duallink.py b/trellis/trellis_duallink.py
index e8753e5..be96bfb 100755
--- a/trellis/trellis_duallink.py
+++ b/trellis/trellis_duallink.py
@@ -7,10 +7,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 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 routinglib import RoutedHost, RoutedHost6, UserNAT
 from trellislib import DhcpClient, Dhcp6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
 from functools import partial
@@ -80,7 +79,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_hag.py b/trellis/trellis_hag.py
index 575a08a..5073e23 100755
--- a/trellis/trellis_hag.py
+++ b/trellis/trellis_hag.py
@@ -7,10 +7,9 @@
 from mininet.log import setLogLevel
 from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.link import TCLink
-from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
-from routinglib import RoutedHost, RoutedHost6
+from routinglib import RoutedHost, RoutedHost6, NAT
 from trellislib import DhcpClient, Dhcp6Client, Dhcp4and6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import DualHomedDhcpClient
 from trellislib import DualHomedDhcp4and6Client
@@ -103,7 +102,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_hybrid.py b/trellis/trellis_hybrid.py
index ab6e9d7..a5f0753 100755
--- a/trellis/trellis_hybrid.py
+++ b/trellis/trellis_hybrid.py
@@ -7,10 +7,9 @@
 from mininet.log import setLogLevel
 from mininet.node import RemoteController, OVSBridge, Host, OVSSwitch
 from mininet.link import TCLink
-from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
-from routinglib import RoutedHost, RoutedHost6
+from routinglib import RoutedHost, RoutedHost6, UserNAT
 from trellislib import DhcpClient, Dhcp6Client, Dhcp4and6Client, DhcpRelay, DhcpServer, Dhcp6Server
 from trellislib import DualHomedDhcpClient
 from trellislib import DualHomedDhcp4and6Client
@@ -105,7 +104,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_hybrid_v4.py b/trellis/trellis_hybrid_v4.py
index 2db3b77..ae2470c 100755
--- a/trellis/trellis_hybrid_v4.py
+++ b/trellis/trellis_hybrid_v4.py
@@ -10,10 +10,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 from mininet.node import OVSBridge, OVSSwitch
-from mininet.nodelib import NAT
 from ipaddress import ip_network
 from routinglib import BgpRouter
-from routinglib import RoutedHost
+from routinglib import RoutedHost, UserNAT
 from trellislib import DhcpClient, DhcpServer
 from trellislib import DualHomedDhcpClient
 from trellislib import get_mininet, set_up_zebra_config
@@ -109,7 +108,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_remote_dhcp.py b/trellis/trellis_remote_dhcp.py
index bf0f654..310c472 100755
--- a/trellis/trellis_remote_dhcp.py
+++ b/trellis/trellis_remote_dhcp.py
@@ -7,10 +7,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 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 routinglib import RoutedHost, UserNAT
 from trellislib import DhcpClient, DhcpServer, DhcpRelay
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
 from functools import partial
@@ -73,7 +72,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)
diff --git a/trellis/trellis_vlan.py b/trellis/trellis_vlan.py
index 6fba7e7..2c89172 100755
--- a/trellis/trellis_vlan.py
+++ b/trellis/trellis_vlan.py
@@ -7,10 +7,9 @@
 from mininet.cli import CLI
 from mininet.log import setLogLevel
 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 routinglib import RoutedHost, UserNAT
 from trellislib import DhcpClient, DhcpServer
 from trellislib import TaggedDhcpClient, TaggedDhcpServer
 from trellislib import get_mininet, parse_trellis_args, set_up_zebra_config
@@ -69,7 +68,7 @@
         cs0 = self.addSwitch('cs0', cls=OVSBridge, datapath='user')
 
         # Control plane NAT (for quagga fpm)
-        nat = self.addHost('nat', cls=NAT,
+        nat = self.addHost('nat', cls=UserNAT,
                            ip='172.16.0.1/24',
                            subnet=str(ip_network(u'172.16.0.0/24')), inNamespace=False)
         self.addLink(cs0, nat)