[HELP] Configuring OpenVSwitch in LEDE

Hello there!

I'm trying to make my LEDE (17.01.4) router (TP-LINK Archer C7 v2) a controllable SDN switch. I've installed OpenVSwitch, created a bridge and connected it to a POX controller running on my computer. What I'm now trying to figure out is how to handle the interface configuration.

$ ovs-vsctl show
    Bridge "br1"
        Controller "tcp:192.168.1.240:6633"
            is_connected: true
        Port "br1"
            Interface "br1"
                type: internal

I'm a newbie, and still am trying to get my head around network configuration. What I'd like to start with is to have all network traffic go through my OvS bridge so I can capture it using POX. Apart from installing OvS, my interfaces are the default ones.

How can I go about doing that?
Thank you very much!

assuming you have a default install + ovs you probably want to set WAN to have no physical interfaces, LAN to have no physical interfaces, and then add eth0 and eth1 to your openvswitch. At this point, any packet coming in any ethernet port will hit the OVS. If you want wlan also bridged in you'll have to figure out how to do that separately.

1 Like

In order to do this you might need a special wifi management SSID so you don't lock yourself out

Thank you so much for answering!

I've tried changing the WAN settings first, but it didn't work: the router no longer connects to the Internet.

I currently have 2 WAN intefaces: wan and wan6, both using PPPoE authentication.

What I did was changing the physical interface to br1 (my ovs bridge) in both of them and then adding the eth0 port to my ovs bridge. My network info before the changes:

config interface 'wan'
	option _orig_ifname 'eth0'
	option _orig_bridge 'false'
	option proto 'pppoe'
	option username 'turbonet@turbonet'
	option password 'gvt25'
	option ipv6 'auto'
	option ifname 'eth0'

config interface 'wan6'
	option _orig_ifname 'eth0'
	option _orig_bridge 'false'
	option proto 'pppoe'
	option username 'turbonet@turbonet'
	option password 'gvt25'
	option ipv6 'auto'
	option ifname 'eth0'

And then after the changes:

config interface 'wan'
	option _orig_ifname 'eth0'
	option _orig_bridge 'false'
	option proto 'pppoe'
	option username 'turbonet@turbonet'
	option password 'gvt25'
	option ipv6 'auto'
	option ifname 'br1'

config interface 'wan6'
	option _orig_ifname 'eth0'
	option _orig_bridge 'false'
	option proto 'pppoe'
	option username 'turbonet@turbonet'
	option password 'gvt25'
	option ipv6 'auto'
	option ifname 'br1'

And the output from ovs-vsctl show:

$ovs-vsctl show
a3febd7f-fcbb-4a85-9355-e6ee87249190
    Bridge "br1"
        Port "br1"
            Interface "br1"
                type: internal
        Port "eth0"
            Interface "eth0"

Am I doing something wrong?
Thanks again!!

I think you have to ask how you're planning to make this work.

At first glance you seem to be asking how to turn your router into a smart switch... but then when you take the steps necessary you are confused because it no longer acts as a router... but that's actually what it's supposed to do if it's a smart switch. Switches don't handle pppoe connections or do DNS or DHCP for example...

So, perhaps you want to just replace the br-lan with an OVS switch while retaining the routing function on WAN? Or some other thing. Perhaps you want to connect a separate router to your switch?

Think about what you want it to do and see if you can describe it in more detail.

1 Like

I most certainly am confused :sweat_smile:. I've only seen OvS used in simplified emulated environments, and am having trouble putting it all together when deploying it in LEDE.

I'm trying to learn about SDN and implement it in a real environment. My first objective is to be able to collect traffic data and see the workings of OpenFlow (namely flow table updates).

I think replacing br-lan and keeping the routing function in WAN is exacly what I need! From what I understand, by doing that I'd still be able to see/manage all traffing going through the router, right?

Thank you again for your time and attention, and sorry for not being clear on what I wanted initially!! I hope this is a little more understandable.

Ok, well here's the thing, most routers have a hardware switch on the LAN side, and so you'll see traffic going in or out of the router's CPU which basically means routed traffic or traffic originating or terminating at the router, but you won't see traffic between two machines on your LAN as the hardware switch will simply send it from port 1 to port 2 or the like.

As long as that's what you want. Then revert to stock config, and then remove br-lan and create your OVS bridge and put the LAN network device (figure out whether it's eth0 or eth1, and/or add wifi network devices wlan0 etc) into the OVS bridge. Then you'll be able to inspect traffic that goes in or out of the router.

1 Like

Hello again!

(Sorry in advance for the long post. I tried to provide a detailed explanation of what I did!)

I've been working on this for a loooong while but still haven't been able to get it working :frowning:. I always end up loosing access to the router.

So, here's what I´ve learned:

  1. The default router configuration diagram for my router is: https://i.stack.imgur.com/B5cUF.png

  2. I've seen other people trying to replace br-lan with OvS. One guy made a script: https://stackoverflow.com/questions/44347485/change-linux-bridge-to-openvswitch-in-openwrt

I made some changes to the script in (2) to fit my router config. Namely, I understand my router only has eth1 and wlan1 interfaces (I delete wlan0 so I only have one Wi-Fi network).

As per the instructions in StackOverflow, I start by changing my /etc/config/network file from:

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd30:6a91:e290::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.2.1'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '2 3 4 5 0'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6'

To (only lan interface changed):

config interface 'lan'
        option ifname 'ovslan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.1.121' 
        option gateway '192.168.1.1'

And then I run the script below by doing ((/root/ovs-tplink.sh > /dev/null 2&>1)&)&

#!/bin/sh
OVS_BR=ovslan
#IP Controller, Port for OvS Manager, Linux Bridge
IP_CONTROLLER=192.168.1.240
PORT_CONTROLLER=6633
LINUX_BRIDGE=br-lan
echo -e "\033[0;32m Declare Necessary Variable Successful"
# Add Bridge Open vSwitch
ovs-vsctl --may-exist add-br $OVS_BR
echo -e "\033[0;32m Add OvS Bridge $OVS_BR Succesful"
sleep 2
#Delete Port if added to $LINUX_BRIDGE
for i in eth1
do
  brctl delif $LINUX_BRIDGE $i
  echo -e "\033[0;32m Delete Port $i in $LINUX_BRIDGE successful"
  sleep 1
done
# Add Port to Bridge
for i in eth1 wlan1
do
  ovs-vsctl --may-exist add-port $OVS_BR $i
  echo -e "\033[0;32m Add OvS Port $i to $OVS_BR successful"
  sleep 1
done
# Up The Interface
for i in eth1 wlan1 ovslan
do
  ifconfig $i up
  echo -e "\033[0;32m Up interface $i"
  sleep 1
done
#Set All Options Necessary for Controller
ovs-vsctl set-controller $OVS_BR tcp:$IP_CONTROLLER:$PORT_CONTROLLER
echo -e "\033[0;32m Set IP:$IP_CONTROLLER as Controller in $OVS_BR and Successful"
sleep 1
ovs-vsctl set-fail-mode $OVS_BR standalone
echo -e "\033[0;32m Set Standalone Mode in $OVS_BR and Successful"
sleep 1
ovs-ofctl del-flows $OVS_BR
echo -e "\033[0;32m Delete Previous Flows in $OVS_BR and Successful"
sleep 1
echo -e "\033[0;32m Restart Network Service. . . . . . "
/etc/init.d/network restart
echo -e "\033[0;32m Restart Network Service Successful"
# Check Result
echo -e "\033[0;32m Result : "
ovs-vsctl show
echo " "
reboot
exit 0

I am now using another router to connect to the internet (also to simplify the setup on this one). I connect one of the LAN ports from the other router to one of the LAN ports of this router, and I'm thinking I should see this router as a client on the other one (with the fixed IP 192.168.1.121, as I set up in the network config).

But pinging 192.168.1.121 times out, and I don't see this IP on the other router's client list. My controller also doesn't show any connected switches.

Am I doing somethink obviously wrong again?

I'm not sure how the /etc/init.d/network restart interacts with all the effort you've put into configuring your OVS switch. I'd suggest maybe comment that out and see what happens.

Also, where is your controller physically connected to this whole thing? I imagine you have:

ISP --WAN--> OtherRouter -- LAN --> YourOVSRouter ----- ovsbr ---> Some Desktop Computer
                  |
                  |----------LAN------> YourController

or possibly:

ISP --WAN--> OtherRouter -- LAN --> YourOVSRouter ----- ovsbr ---> Some Desktop Computer
                                           |
                                           |----------ovsbr------> YourController

But it'd be good to get some clarity on this

Hi!

My setup is the first one you described, but I've also tried the second one to no luck.

So, I tried commenting out the network restart, but still need to reboot the router afterwards so my custom network config takes effect. After rebooting, I lose access to the YourOVSRouter and no switches connect to my controller.

When I plug in another computer to the YourOVSRouter, I get an IP address from DHCP (I figure it's the OtherRouter's server which assigned that to me) and am able to ping my controller (but not the YourOVSRouter. I'm thinking this is due to the hardware switch you mentioned).

I'm actually becoming quite desperate, so I'm absolutely willing to get the simplest setup up and running just as a proof of concept. My main goal is to be able to collect any traffic network from my controller, if possible between two computers. Is there an easier way to do that?

Based on the network diagram you posted, I think you should connect OtherRouter to the WAN port of your device, and then make sure both eth0 and eth1 are in the ovsbr

that will ensure that traffic headed from Some Desktop Computer towards OtherRouter has to go through ovsbr without being short-circuited by the hardware switch.

1 Like

This worked! I had to remove eth1 from the existing br-lan, though, or else OVS would give me an error when adding it to the ovsbr.

One (last) conceptual question: would setting up different VLANs for each LAN port enable me to capture traffic between those ports within the router?

Thank you VERY much!

I think so, provided you put the vlan interfaces into the bridge eth0.2 eth0.4 etc

1 Like

Hey, how's it going?

I believe I'm currently experiencing the same issue as you :cry:. How did you remove eth1 from your existing br-lan? And how was your overall progress btw, was it successful at the end?

Thanks!

Hi there!

Well, it's been a while and I've forgotten most of the reasoning behind this. I do have logs on the commands I executed, so I hope this will be of help.

I remember I started with a minimal setup, aiming only at mantaining internet connectivity while using OVS, so I think this should work:

$ opkg update && opkg install kmod-openvswitch openvswitch
$ reboot
$ ovs-vsctl add-br br1
$ brctl delif br-lan eth1
$ brctl show

bridge name	bridge id		STP enabled	interfaces
br-lan		7fff.d46e0eb23641	no		wlan1

$ ovs-vsctl add-port br1 eth0
$ ovs-vsctl add-port br1 eth1
$ ovs-vsctl set-controller br1 tcp:192.168.2.240:6633
$ ifconfig br1 up
$ ifconfig eth1 up
$ ifconfig

br-lan    Link encap:Ethernet  HWaddr D4:6E:0E:B2:36:41  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::d66e:eff:feb2:3641/64 Scope:Link
          inet6 addr: fdce:5a72:40bb:4::1/62 Scope:Global
          inet6 addr: fdac:53e4:b64a::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1599 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1309 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:195272 (190.6 KiB)  TX bytes:357022 (348.6 KiB)

br1       Link encap:Ethernet  HWaddr D4:6E:0E:B2:36:41  
          inet6 addr: fe80::d66e:eff:feb2:3641/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19 errors:0 dropped:115 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:989 (989.0 B)  TX bytes:738 (738.0 B)

eth0      Link encap:Ethernet  HWaddr D4:6E:0E:B2:36:42  
          inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fdce:5a72:40bb::a21/128 Scope:Global
          inet6 addr: fdce:5a72:40bb::d66e:eff:feb2:3642/64 Scope:Global
          inet6 addr: 2804:7f2:2a8c:604a:d66e:eff:feb2:3642/64 Scope:Global
          inet6 addr: fe80::d66e:eff:feb2:3642/64 Scope:Link
          inet6 addr: 2804:7f2:2a8c:604a::a21/128 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:621 errors:0 dropped:0 overruns:0 frame:0
          TX packets:485 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:173589 (169.5 KiB)  TX bytes:71994 (70.3 KiB)
          Interrupt:4 

eth1      Link encap:Ethernet  HWaddr D4:6E:0E:B2:36:41  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:459 errors:0 dropped:0 overruns:0 frame:0
          TX packets:581 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:67114 (65.5 KiB)  TX bytes:138486 (135.2 KiB)
          Interrupt:5 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:45 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:4693 (4.5 KiB)  TX bytes:4693 (4.5 KiB)

wlan1     Link encap:Ethernet  HWaddr D4:6E:0E:B2:36:40  
          inet6 addr: fe80::d66e:eff:feb2:3640/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1206 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1140 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:167558 (163.6 KiB)  TX bytes:326986 (319.3 KiB)

I then went on to set-up the VLANs etc. & have the logs for those as well if you need, but I'm not too sure what I did :pensive:

Hi!

Thank you so much for confirming this for me! I l would love to have a look at your VLAN configs if you still have them and you are fine sharing them with me :grinning:

My goal is actually exactly the same as you, just aiming only at maintaining internet connectivity while using OVS. However, I'm currently using TP-LINK Archer C7 v5 instead of your v2, and running similar commands didn't really work on my machine. Below is v5's ifconfig, basically when comparing to v2, the WAN interface has changed from eth0 to eth0.2, the LAN interface has changed from eth1 to eth0.1.

$ ifconfig
br-lan    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fd24:ca6a:2266::1/60 Scope:Global
          inet6 addr: fe80::2aee:52ff:fe62:db9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56688095 errors:0 dropped:0 overruns:0 frame:0
          TX packets:107523935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5055776575 (4.7 GiB)  TX bytes:149122794794 (138.8 GiB)

eth0      Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet6 addr: fe80::2aee:52ff:fe62:db9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:164488040 errors:0 dropped:0 overruns:3 frame:0
          TX packets:164146639 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1043657852 (995.3 MiB)  TX bytes:720589847 (687.2 MiB)
          Interrupt:4

eth0.1    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56688095 errors:0 dropped:0 overruns:0 frame:0
          TX packets:107523935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5055776575 (4.7 GiB)  TX bytes:149122794794 (138.8 GiB)

eth0.2    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9E
          inet addr:192.168.3.25  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::2aee:52ff:fe62:db9e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107799858 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56622356 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:147645877687 (137.5 GiB)  TX bytes:5559983349 (5.1 GiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1222 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:133810 (130.6 KiB)  TX bytes:133810 (130.6 KiB)

wlan0     Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9C
          inet6 addr: fe80::2aee:52ff:fe62:db9c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:7978603 (7.6 MiB)

wlan1     Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet6 addr: fe80::2aee:52ff:fe62:db9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:7978603 (7.6 MiB)

Just wondering could I please ask some questions on the command you executed above. I have tried to run similar configs as what you have done, see below .sh file. But as soon as I execute this, I lost connection to my router, both though SSH or the Luci Web Interface (192.168.1.1).

#!/bin/sh
#run this command before running this config: $chmod +x <filename.sh>
ovs-vsctl add-br ovs-br
brctl delif br-lan eth0.1

ovs-vsctl add-port ovs-br eth0
ovs-vsctl add-port ovs-br eth0.2
ovs-vsctl add-port ovs-br eth0.1
ovs-vsctl set-controller ovs-br tcp:192.168.1.203:6633

ifconfig ovs-br up
ifconfig eth0.1 up

exit 0

So I tried again with some modification to the config file where I deleted the IP address of the LAN port which is eth0.1 (similar to your eth1) then added to the OVS bridge that I have created named ovs-br. But this time, I could connect to the router through SSH but I still can not access the internet. Do you have any clue what I'm doing wrong?

#!/bin/sh
#run this command before running this config: $chmod +x <filename.sh>
#delete default bridge
  brctl delif br-lan eth0.1
  ifconfig br-lan down
  brctl delbr br-lan
#create ovs bridge
  ovs-vsctl add-br ovs-br
  ovs-vsctl add-port ovs-br eth0.1
  ip link set eth0.1 up
  sleep 3
#up the interfaces
  ip addr add 192.168.1.1/24 dev ovs-br
  sleep 3
  ip link set ovs-br up
  sleep 3
#add route for '192.168.1.0' traffics through interface 'ovs-br'
  ip route add 192.168.1.0/24 via 0.0.0.0 dev ovs-br
  sleep 3
#config boradcast and ipv6 to the same as 'br-lan' before
  ifconfig ovs-br broadcast 192.168.1.255
  sleep 3
  ip -6 addr add xxxx:xxxxx:xxxx::1/60 dev ovs-br scope global
  sleep 3

exit 0
$ ovs-vsctl show
d4a99c27-a9ad-4d57-ac81-f83d92e4aaf1
    Bridge ovs-br
        Controller "tcp:192.168.1.203:6633"
        Port ovs-br
            Interface ovs-br
                type: internal
        Port "eth0.1"
            Interface "eth0.1"
        Port "eth0.2"
            Interface "eth0.2"
    ovs_version: "2.11.6"
My original routing table:
$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG    0      0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0.2

Routing table after running my new "config.sh" above:
$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.1     0.0.0.0         UG    0      0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ovs-br
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0.2
New ifconfig:
$ ifconfig
eth0      Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet6 addr: fe80::2aee:52ff:fe62:db9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:164488040 errors:0 dropped:0 overruns:3 frame:0
          TX packets:164146639 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1043657852 (995.3 MiB)  TX bytes:720589847 (687.2 MiB)
          Interrupt:4

eth0.1    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56688095 errors:0 dropped:0 overruns:0 frame:0
          TX packets:107523935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5055776575 (4.7 GiB)  TX bytes:149122794794 (138.8 GiB)

eth0.2    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9E
          inet addr:192.168.3.25  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::2aee:52ff:fe62:db9e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107799858 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56622356 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:147645877687 (137.5 GiB)  TX bytes:5559983349 (5.1 GiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1222 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:133810 (130.6 KiB)  TX bytes:133810 (130.6 KiB)

ovs-br    Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx::1/60 Scope:Global
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2055 errors:0 dropped:13 overruns:0 frame:0
          TX packets:1901 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:352819 (344.5 KiB)  TX bytes:536139 (523.5 KiB)

wlan0     Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9C
          inet6 addr: fe80::2aee:52ff:fe62:db9c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:7978603 (7.6 MiB)

wlan1     Link encap:Ethernet  HWaddr 28:EE:52:62:DB:9D
          inet6 addr: fe80::2aee:52ff:fe62:db9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40691 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:7978603 (7.6 MiB)

Much appreciate your help again!