[ovs-discuss] ovn: unsnat handling error for Distributed Gateway
Hi All, I am having a problem for ovn and need help, thanks. I created two logical routes and connected the two LogicalRoutes through a external LogicalSwitch (connected to the external network) . And then LogicalRoute-1 connected to the VM through the internal LogicalSwitch . my topology: 10.157.142.3 172.16.1.254 ++ +-++ +-++ ++ Logical Router 1 +--| Logical Switch +---+ VM 172.16.1.7 | |++ +--+ +--+ +-++ | Logical Switch | +--+ |++ ++ Logical Router 2 | ++ 10.157.142.3 I tested the master and Branch2.7, it Can not be transferred from VM (172.16.1.7) to LogicaRouter-2 's port (10.157.142.3) via ping. My logical router is a distributed gateway, and the two logical router ports that connect external LogicalSwitch are on the same chassis. If the two logical router ports are not on the same chassis ping is also OK, And ping from VM (172.16.1.7) to external network is also OK. I looked at the openflow tables on gateway chassis, I suspected unsnat handling error in Router1 input for icmp replay. I think it is necessary to replace the destination address 10.157.142.3 with 172.16.1.7 in Table 19 and route 172.16.1.7 in Table 21, but now the route match is 10.157.142.0/24. cookie=0x92bd0055, duration=68.468s, table=16, n_packets=1, n_bytes=98, idle_age=36, priority=50,reg14=0x4,metadata=0x7,dl_dst=fa:16:3e:58:1c:8a actions=resubmit(,17) cookie=0x45765344, duration=68.467s, table=17, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,18) cookie=0xaeaaed29, duration=68.479s, table=18, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,19) cookie=0xce785d51, duration=68.479s, table=19, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,reg14=0x4,metadata=0x7,nw_dst=10.157.142.3 actions=ct(table=20,zone=NXM_NX_REG12[0..15],nat) cookie=0xbd994421, duration=68.481s, table=20, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,21) cookie=0xaea3a6ae, duration=68.479s, table=21, n_packets=1, n_bytes=98, idle_age=36, priority=49,ip,metadata=0x7,nw_dst=10.157.142.0/24 actions=dec_ttl(),move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[96..127],load:0xa9d8e03->NXM_NX_XXREG0[64..95],mod_dl_src:fa:16:3e:58:1c:8a,load:0x4->NXM_NX_REG15[],load:0x1->NXM_NX_REG10[0],resubmit(,22) cookie=0xce6e8d4e, duration=68.482s, table=22, n_packets=1, n_bytes=98, idle_age=36, priority=0,ip,metadata=0x7 actions=push:NXM_NX_REG0[],push:NXM_NX_XXREG0[96..127],pop:NXM_NX_REG0[],mod_dl_dst:00:00:00:00:00:00,resubmit(,66),pop:NXM_NX_REG0[],resubmit(,23) cookie=0xce89c4ed, duration=68.481s, table=23, n_packets=1, n_bytes=98, idle_age=36, priority=150,reg15=0x4,metadata=0x7,dl_dst=00:00:00:00:00:00 actions=load:0x5->NXM_NX_REG15[],resubmit(,24) cookie=0xb2d84350, duration=68.469s, table=24, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,metadata=0x7,dl_dst=00:00:00:00:00:00 I do not know why and need help, thanks. ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] [ovs-dev] ovn: unsnat handling error for Distributed Gateway
revese my topology: +-++ | VM 172.16.1.7 | +-++ | +-++ | Logical Switch | +-++ |172.16.1.254 10.157.142.3 +---++ ++ Logical Router 1 + |++ +-++ | Logical Switch | +--+ |++ ++ Logical Router 2 | 10.157.142.3 ++ Hi All, I am having a problem for ovn and need help, thanks. I created two logical routes and connected the two LogicalRoutes through a external LogicalSwitch (connected to the external network) . And then LogicalRoute-1 connected to the VM through the internal LogicalSwitch . my topology: 10.157.142.3 172.16.1.254 ++ +-++ +-++ ++ Logical Router 1 +--| Logical Switch +---+ VM 172.16.1.7 | |++ +--+ +--+ +-++ | Logical Switch | +--+ |++ ++ Logical Router 2 | ++ 10.157.142.3 I tested the master and Branch2.7, it Can not be transferred from VM (172.16.1.7) to LogicaRouter-2 's port (10.157.142.3) via ping. My logical router is a distributed gateway, and the two logical router ports that connect external LogicalSwitch are on the same chassis. If the two logical router ports are not on the same chassis ping is also OK, And ping from VM (172.16.1.7) to external network is also OK. I looked at the openflow tables on gateway chassis, I suspected unsnat handling error in Router1 input for icmp replay. I think it is necessary to replace the destination address 10.157.142.3 with 172.16.1.7 in Table 19 and route 172.16.1.7 in Table 21, but now the route match is 10.157.142.0/24. cookie=0x92bd0055, duration=68.468s, table=16, n_packets=1, n_bytes=98, idle_age=36, priority=50,reg14=0x4,metadata=0x7,dl_dst=fa:16:3e:58:1c:8a actions=resubmit(,17) cookie=0x45765344, duration=68.467s, table=17, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,18) cookie=0xaeaaed29, duration=68.479s, table=18, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,19) cookie=0xce785d51, duration=68.479s, table=19, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,reg14=0x4,metadata=0x7,nw_dst=10.157.142.3 actions=ct(table=20,zone=NXM_NX_REG12[0..15],nat) cookie=0xbd994421, duration=68.481s, table=20, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,21) cookie=0xaea3a6ae, duration=68.479s, table=21, n_packets=1, n_bytes=98, idle_age=36, priority=49,ip,metadata=0x7,nw_dst=10.157.142.0/24 actions=dec_ttl(),move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[96..127],load:0xa9d8e03->NXM_NX_XXREG0[64..95],mod_dl_src:fa:16:3e:58:1c:8a,load:0x4->NXM_NX_REG15[],load:0x1->NXM_NX_REG10[0],resubmit(,22) cookie=0xce6e8d4e, duration=68.482s, table=22, n_packets=1, n_bytes=98, idle_age=36, priority=0,ip,metadata=0x7 actions=push:NXM_NX_REG0[],push:NXM_NX_XXREG0[96..127],pop:NXM_NX_REG0[],mod_dl_dst:00:00:00:00:00:00,resubmit(,66),pop:NXM_NX_REG0[],resubmit(,23) cookie=0xce89c4ed, duration=68.481s, table=23, n_packets=1, n_bytes=98, idle_age=36, priority=150,reg15=0x4,metadata=0x7,dl_dst=00:00:00:00:00:00 actions=load:0x5->NXM_NX_REG15[],resubmit(,24) cookie=0xb2d84350, duration=68.469s, table=24, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,metadata=0x7,dl_dst=00:00:00:00:00:00 I do not know why and need help, thanks. ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] ovn: unsnat handling error for Distributed Gateway
revese my topology: +-++ | VM 172.16.1.7 | +-++ | +-++ | Logical Switch | +-++ |172.16.1.254 10.157.142.3 +---++ ++ Logical Router 1 + |++ +-++ | Logical Switch | +--+ |++ ++ Logical Router 2 | 10.157.142.1 ++ Hi All, I am having a problem for ovn and need help, thanks. I created two logical routes and connected the two LogicalRoutes through a external LogicalSwitch (connected to the external network) . And then LogicalRoute-1 connected to the VM through the internal LogicalSwitch . my topology: 10.157.142.3 172.16.1.254 ++ +-++ +-++ ++ Logical Router 1 +--| Logical Switch +---+ VM 172.16.1.7 | |++ +--+ +--+ +-++ | Logical Switch | +--+ |++ ++ Logical Router 2 | ++ 10.157.142.1 I tested the master and Branch2.7, it Can not be transferred from VM (172.16.1.7) to LogicaRouter-2 's port (10.157.142. Sorry, The destination address is 10.157.142.1, And The SNAT/unSNAT address is 10.157.142.3. ) via ping. My logical router is a distributed gateway, and the two logical router ports that connect external LogicalSwitch are on the same chassis. If the two logical router ports are not on the same chassis ping is also OK, And ping from VM (172.16.1.7) to external network is also OK. I looked at the openflow tables on gateway chassis, I suspected unsnat handling error in Router1 input for icmp replay. I think it is necessary to replace the destination address 10.157.142.3 with 172.16.1.7 in Table 19 and route 172.16.1.7 in Table 21, but now the route match is 10.157.142.0/24. cookie=0x92bd0055, duration=68.468s, table=16, n_packets=1, n_bytes=98, idle_age=36, priority=50,reg14=0x4,metadata=0x7,dl_dst=fa:16:3e:58:1c:8a actions=resubmit(,17) cookie=0x45765344, duration=68.467s, table=17, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,18) cookie=0xaeaaed29, duration=68.479s, table=18, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,19) cookie=0xce785d51, duration=68.479s, table=19, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,reg14=0x4,metadata=0x7,nw_dst=10.157.142.3 actions=ct(table=20,zone=NXM_NX_REG12[0..15],nat) cookie=0xbd994421, duration=68.481s, table=20, n_packets=1, n_bytes=98, idle_age=36, priority=0,metadata=0x7 actions=resubmit(,21) cookie=0xaea3a6ae, duration=68.479s, table=21, n_packets=1, n_bytes=98, idle_age=36, priority=49,ip,metadata=0x7,nw_dst=10.157.142.0/24 actions=dec_ttl(),move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[96..127],load:0xa9d8e03->NXM_NX_XXREG0[64..95],mod_dl_src:fa:16:3e:58:1c:8a,load:0x4->NXM_NX_REG15[],load:0x1->NXM_NX_REG10[0],resubmit(,22) cookie=0xce6e8d4e, duration=68.482s, table=22, n_packets=1, n_bytes=98, idle_age=36, priority=0,ip,metadata=0x7 actions=push:NXM_NX_REG0[],push:NXM_NX_XXREG0[96..127],pop:NXM_NX_REG0[],mod_dl_dst:00:00:00:00:00:00,resubmit(,66),pop:NXM_NX_REG0[],resubmit(,23) cookie=0xce89c4ed, duration=68.481s, table=23, n_packets=1, n_bytes=98, idle_age=36, priority=150,reg15=0x4,metadata=0x7,dl_dst=00:00:00:00:00:00 actions=load:0x5->NXM_NX_REG15[],resubmit(,24) cookie=0xb2d84350, duration=68.469s, table=24, n_packets=1, n_bytes=98, idle_age=36, priority=100,ip,metadata=0x7,dl_dst=00:00:00:00:00:00 I do not know why and need help, thanks. ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] OVN accommodations for High Availability?
Hi Bernie, Here is "HA for OVN DB servers using pacemaker": http://docs.openvswitch.org/en/latest/topics/integration/?highlight=HA%20for%20OVN%20DB%20servers%20using%20pacemaker#ha-for-ovn-db-servers-using-pacemaker This implementation of the OVNDB "Active/Backup" mode of high reliability. Gateway high reliability seems to have a plan, the current situation I do not know. http://docs.openvswitch.org/en/latest/topics/high-availability/#ovn-gateway-high-availability-plan You can prepare multiple gateways, "networking-ovn" will automatically schedule the gateway when it is down. I do not know if the OVN gateway supports ECMP。 Good day, all Please excuse the amateurish question. This is my first crack at OVN. Is there some sort of deployment guide that for high availability? I have a use case for OVN but don’t immediately see how to get away from a e.g. a controller or gateway node being the single point of failure. I started thinking about two gateways and ECMP on the outside of the environment but not sure how this manifests on the southbound side. Cheers Bernie ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] connecting a VM to OVS with a virtio device
This is my command, Please refer : # qemu-kvm /root/image/gdx_ctl1.img -cpu host --enable-kvm -smp 2,sockets=4 -m 4G -vnc :702, -net nic,vlan=0,macaddr=0c:b5:8a:e3:9c:00 -net tap,vlan=0,ifname=tap709,script=no # ovs-vsctl add-br br-def # ovs-vsctl add-port br-def eth0 # ovs-vsctl add-port br-def tap709 # ip link set tap709 up Hi, currently I can launch a VM connected to OVS with a tap device using the following command line : "qemu-system-x86_64 -m 512 -smp 4 -cpu host -hda ~/f21vm1c1.qcow2 -boot c -enable-kvm -no-reboot -nographic -net nic,macaddr=00:11:22:EE:EE:EE -net tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown" I want to launch a VM to be connected to OVS via a virtio (vhost) device - which its performance is much better Can you specify the required changes to command-line above in order to do it ? Regards avi ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] connecting a VM to OVS with a virtio device
-vnc :702 this is means the vnc-port is 5900+702 = 6602 you may used vnc by server_ip:6602 Make sure the firewall does not prohibit it. Thank you very much Guoshuai Li How can I enter (vncviwer) the VM ? I don't know the VM ip Best regards avi -Original Message- From: Guoshuai Li [mailto:l...@dtdream.com] Sent: Wednesday, 26 April, 2017 7:02 PM To: Avi Cohen (A); ovs-discuss@openvswitch.org Subject: Re: [ovs-discuss] connecting a VM to OVS with a virtio device This is my command, Please refer : # qemu-kvm /root/image/gdx_ctl1.img -cpu host --enable-kvm -smp 2,sockets=4 -m 4G -vnc :702, -net nic,vlan=0,macaddr=0c:b5:8a:e3:9c:00 -net tap,vlan=0,ifname=tap709,script=no # ovs-vsctl add-br br-def # ovs-vsctl add-port br-def eth0 # ovs-vsctl add-port br-def tap709 # ip link set tap709 up ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] How to create mirror packet over GRE on OVS+DPDK
I think you may have caught the tunnel inner package. Is the tunnel outbound from interface dpdk0? how about caught dpdk0 with mirror? Or use dpdk-pdump? Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried to create gre tunnel for packet mirroring #ovs-vsctl add-port g1 gre0 -- set interface gre0 type=gre options:remote_ip=192.1.2.159 -- --id=@p get port gre0 -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge g1 mirrors=@m I cannot find any packet arrive on 192.1.2.159, any idea? I have tried to use the same command in an OVS setup without DPDK enabled, it works. please help - RBK On Mon, Sep 25, 2017 at 1:26 PM, Sun Paul wrote: Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried to create gre tunnel for packet mirroring ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] How to create mirror packet over GRE on OVS+DPDK
You can catch packets on your management interface. I guess your package sent to the userspace from vm by dpdk , and then through the tunnel to return to the kernel. I do not know if this will be a problem. I suggest you can try your management interface using OVS bridge with dpdk, such as "g1". This is my configuration: 7: br-agg: mtu 1600 qdisc pfifo_fast state UP qlen 1000 link/ether 6c:92:bf:04:f9:18 brd ff:ff:ff:ff:ff:ff inet 10.157.145.213/24 brd 10.157.145.255 scope global br-agg valid_lft forever preferred_lft forever inet6 fe80::6e92:bfff:fe04:f918/64 scope link valid_lft forever preferred_lft forever [root@gateway1 ~]# ovs-vsctl show b99b043b-951b-4bc7-9fd7-329d60d443a5 Bridge br-agg Port bond-agg Interface "agg-dpdk-2" type: dpdk options: {dpdk-devargs=":02:00.1"} Interface "agg-dpdk-1" type: dpdk options: {dpdk-devargs=":02:00.0"} Bridge br-int Port "ovn-d172cc-0" Interface "ovn-d172cc-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.212"} Port br-int Interface br-int type: internal Port "ovn-d131e4-0" Interface "ovn-d131e4-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.214"} Port "ovn-844fcd-0" Interface "ovn-844fcd-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.211"} Hi thank for your reply. the 192.1.2.159 is actually on the same subnet of the management interface, it is not part of the OVS bridge. On Mon, Sep 25, 2017 at 1:37 PM, Guoshuai Li wrote: I think you may have caught the tunnel inner package. Is the tunnel outbound from interface dpdk0? how about caught dpdk0 with mirror? Or use dpdk-pdump? Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried to create gre tunnel for packet mirroring #ovs-vsctl add-port g1 gre0 -- set interface gre0 type=gre options:remote_ip=192.1.2.159 -- --id=@p get port gre0 -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge g1 mirrors=@m I cannot find any packet arrive on 192.1.2.159, any idea? I have tried to use the same command in an OVS setup without DPDK enabled, it works. please help - RBK On Mon, Sep 25, 2017 at 1:26 PM, Sun Paul wrote: Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried to create gre tunnel for packet mirroring ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] How to create mirror packet over GRE on OVS+DPDK
I have not tested the GRE tunnel, I used geneve Tunnel, I think they are similar. I mean that the tunnel encap ip uses the ovs bridge. What is your tunnel source ip? Your source IP should be configured on an ovs bridge, the physical out of this bridge uses dpdk You can refer to http://docs.openvswitch.org/en/latest/howto/userspace-tunneling/?highlight=tunnel 4. Onhost1, add a port for the VXLANtunnel: $ ovs-vsctl add-port br-int vxlan0 \ -- set interface vxlan0 type=vxlan options:remote_ip=172.168.1.2 Note |172.168.1.2|is the remotetunnelend point address. On the remote host this will be|172.168.1.1| 5. Create a|br-phy|bridge: $ ovs-vsctl --may-exist add-br br-phy \ -- set Bridge br-phy datapath_type=netdev \ -- br-set-external-id br-phy bridge-id br-phy \ -- set bridge br-phy fail-mode=standalone \ other_config:hwaddr= I am not sure whether the source ip using physical network with kernel will be a problem. sorry to overlook. from your configuration, you have two bridges, one is with dpdk, and the other is not which is on management subnet, right? can you share the GRE tunnel command for reference? On Mon, Sep 25, 2017 at 3:22 PM, Sun Paul wrote: do you mean I need to bridge the management interface to bridge as well? On Mon, Sep 25, 2017 at 2:14 PM, Guoshuai Li wrote: You can catch packets on your management interface. I guess your package sent to the userspace from vm by dpdk , and then through the tunnel to return to the kernel. I do not know if this will be a problem. I suggest you can try your management interface using OVS bridge with dpdk, such as "g1". This is my configuration: 7: br-agg: mtu 1600 qdisc pfifo_fast state UP qlen 1000 link/ether 6c:92:bf:04:f9:18 brd ff:ff:ff:ff:ff:ff inet 10.157.145.213/24 brd 10.157.145.255 scope global br-agg valid_lft forever preferred_lft forever inet6 fe80::6e92:bfff:fe04:f918/64 scope link valid_lft forever preferred_lft forever [root@gateway1 ~]# ovs-vsctl show b99b043b-951b-4bc7-9fd7-329d60d443a5 Bridge br-agg Port bond-agg Interface "agg-dpdk-2" type: dpdk options: {dpdk-devargs=":02:00.1"} Interface "agg-dpdk-1" type: dpdk options: {dpdk-devargs=":02:00.0"} Bridge br-int Port "ovn-d172cc-0" Interface "ovn-d172cc-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.212"} Port br-int Interface br-int type: internal Port "ovn-d131e4-0" Interface "ovn-d131e4-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.214"} Port "ovn-844fcd-0" Interface "ovn-844fcd-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.211"} Hi thank for your reply. the 192.1.2.159 is actually on the same subnet of the management interface, it is not part of the OVS bridge. On Mon, Sep 25, 2017 at 1:37 PM, Guoshuai Li wrote: I think you may have caught the tunnel inner package. Is the tunnel outbound from interface dpdk0? how about caught dpdk0 with mirror? Or use dpdk-pdump? Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried to create gre tunnel for packet mirroring #ovs-vsctl add-port g1 gre0 -- set interface gre0 type=gre options:remote_ip=192.1.2.159 -- --id=@p get port gre0 -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge g1 mirrors=@m I cannot find any packet arrive on 192.1.2.159, any idea? I have tried to use the same command in an OVS setup without DPDK enabled, it works. please help - RBK On Mon, Sep 25, 2017 at 1:26 PM, Sun Paul wrote: Hi How do I configure mirroring of all traffic to a GRE tunnel on OVS+DPDK? I have a OVS+DPDK setip as below. # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} I tried
[ovs-discuss] [ovn] Chassis Table or MAC_Binding Table in ovn-sb have aging?
Hi All When the chassis node power off, the south of the database to the Chassis table also exists. For example, the gateway node power off, but the chassis information still exists, the traffic continues to forward the package to the chassis. When an external IP address is destroyed, MAC_Binding also has this IP. For example, the MAC address of the device of the external gateway changes (changed one). If there is no external ARP packet, MAC_Binding will not be updated. Is there a good way to solve this problem? please help Thanks ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] How to create mirror packet over GRE on OVS+DPDK
Hi Sun If bridge datapath_type is netdev, the package is in userspace, tcpdump may not take effect. I used to mirror the packet to the linux logical port for tcpdump, You can try: ip link add name sytest type dummy ip link set dev sytest up ovs-vsctl add-port br-int sytest ovs-vsctl -- set Bridge br-int mirrors=@m \ -- --id=@sytest get Port sytest \ -- --id=@ovn-df66f3-0 get Port ovn-df66f3-0 \ -- --id=@m create Mirror name=mymirror select-dst-port=@ovn-df66f3-0 \ select-src-port=@ovn-df66f3-0 output-port=@sytest # capture tcpdump -i snooper0 # clear ovs-vsctl clear Bridge br-int mirrors ip link delete dev sytest Hi I tried to create one more bridge on the host, and it seems GRE packet can be propagated, but I am not able to capture the packet on the g1 bridge. I believed I gave issue on the command to create the tunnel, any idea? # ovs-vsctl show 9fe3ef4d-7f29-4a21-80ea-62a705f5d934 Bridge "mirror0" Port "eth1" Interface "eth1" Port "mirror0" Interface "mirror0" type: internal Bridge "g1" Port "g1" Interface "g1" type: internal Port "dpdk0" Interface "dpdk0" type: dpdk options: {dpdk-devargs=":00:09.0"} # ovs-vsctl add-port mirror0 gre0 -- set interface gre0 type=gre options:remote_ip=192.1.2.243 -- --id=@p get port dpdk0 -- --id=@m create mirror name=m0 select-all=true output-port=@p -- set bridge mirror0 mirrors=@m On Mon, Sep 25, 2017 at 3:43 PM, Guoshuai Li wrote: I have not tested the GRE tunnel, I used geneve Tunnel, I think they are similar. I mean that the tunnel encap ip uses the ovs bridge. What is your tunnel source ip? Your source IP should be configured on an ovs bridge, the physical out of this bridge uses dpdk You can refer to http://docs.openvswitch.org/en/latest/howto/userspace-tunneling/?highlight=tunnel On host1, add a port for the VXLAN tunnel: $ ovs-vsctl add-port br-int vxlan0 \ -- set interface vxlan0 type=vxlan options:remote_ip=172.168.1.2 Note 172.168.1.2 is the remote tunnel end point address. On the remote host this will be 172.168.1.1 Create a br-phy bridge: $ ovs-vsctl --may-exist add-br br-phy \ -- set Bridge br-phy datapath_type=netdev \ -- br-set-external-id br-phy bridge-id br-phy \ -- set bridge br-phy fail-mode=standalone \ other_config:hwaddr= I am not sure whether the source ip using physical network with kernel will be a problem. sorry to overlook. from your configuration, you have two bridges, one is with dpdk, and the other is not which is on management subnet, right? can you share the GRE tunnel command for reference? On Mon, Sep 25, 2017 at 3:22 PM, Sun Paul wrote: do you mean I need to bridge the management interface to bridge as well? On Mon, Sep 25, 2017 at 2:14 PM, Guoshuai Li wrote: You can catch packets on your management interface. I guess your package sent to the userspace from vm by dpdk , and then through the tunnel to return to the kernel. I do not know if this will be a problem. I suggest you can try your management interface using OVS bridge with dpdk, such as "g1". This is my configuration: 7: br-agg: mtu 1600 qdisc pfifo_fast state UP qlen 1000 link/ether 6c:92:bf:04:f9:18 brd ff:ff:ff:ff:ff:ff inet 10.157.145.213/24 brd 10.157.145.255 scope global br-agg valid_lft forever preferred_lft forever inet6 fe80::6e92:bfff:fe04:f918/64 scope link valid_lft forever preferred_lft forever [root@gateway1 ~]# ovs-vsctl show b99b043b-951b-4bc7-9fd7-329d60d443a5 Bridge br-agg Port bond-agg Interface "agg-dpdk-2" type: dpdk options: {dpdk-devargs=":02:00.1"} Interface "agg-dpdk-1" type: dpdk options: {dpdk-devargs=":02:00.0"} Bridge br-int Port "ovn-d172cc-0" Interface "ovn-d172cc-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.212"} Port br-int Interface br-int type: internal Port "ovn-d131e4-0" Interface "ovn-d131e4-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.214"} Port "ovn-844fcd-0" Interface "ovn-844fcd-0" type: geneve options: {csum="true", key=flow, remote_ip="10.157.145.211"} Hi thank for your reply. the 192.1.2.159 is actually on the same subnet of the management interface, it is not part of the OVS bridge. O
[ovs-discuss] [ovnsb-rbac] Does Tcp connection (ovn-sb with ovn-controller) require RBAC?
Hi all: I try to use it build my connection: ovn-sbctl set-connection role = ovn-controller ptcp: 6642: 0.0.0.0 But Chassis has not been created. ovn-controller log: ovsdb_idl|WARN|transaction error: {"details":"RBAC rules for client \"(null)\" role \"ovn-controller\" prohibit modification of table \"Port_Binding\".","error":"permission error"} Later I found tcp stream no peer_id ... Whether RBAC needs to support TCP connections ? Thinks, Guoshuai. ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] Cannot install meter
Is used DPDK create bridge br0? "The "meter" action is now supported noly in the userspace datapath", not supported in kernel space. can you find config "dpdk-init=true" in open-vswitch table's other_config. And the datapath_type of bridge br0 needs to be similar to netdev, not system. such as: [root@gateway1 ~]# ovs-vsctl list bridge br-int _uuid : b73404aa-cb44-4f2c-92e6-99ae59a7ddf5 auto_attach : [] controller : [] datapath_id : "aa0434b72c4f" datapath_type : netdev datapath_version : "" external_ids : {} fail_mode : secure flood_vlans : [] flow_tables : {} ipfix : [] mcast_snooping_enable: false mirrors : [] name : br-int netflow : [] other_config : {disable-in-band="true"} ports : [06a616dc-220a-4b33-b3d3-8d9779e48160, 2feb03e8-49da-4b4e-a13e-60a89e517f9b, 5719a445-f5ea-4ed9-a132-6bccd9529da4, a1b7cfa7-9ea5-4870-8bfb-909619b7fd40, c5cf0c7a-3235-4476-b557-a33e33b3b5f4, ec07f8f5-4ba4-48cb-af9d-dd95ef0ee5db, f06c334f-0446-4a6d-b675-449431df6af1, f1e29be4-5fad-49ec-8b64-ee70aa30d744] protocols : [] rstp_enable : false rstp_status : {} sflow : [] status : {} stp_enable : false [root@gateway1 ~]# ovs-vsctl list open-vswitch _uuid : b4cd39ef-3a54-42aa-a8e9-803233d8779b bridges : [54cbc2bd-832f-476e-8e22-6e7d95a4a4e6, 76c63542-38c5-42ac-af26-c36e3106b930, b73404aa-cb44-4f2c-92e6-99ae59a7ddf5] cur_cfg : 142 datapath_types : [netdev, system] db_version : "7.15.0" external_ids : {hostname="gateway1", ovn-bridge-mappings="physnet2:br-ext", ovn-chassis-types=gateway_router, ovn-encap-ip="12.8.100.110", ovn-encap-type=geneve, ovn-remote="tcp:192.168.133.71:6643", ovn-remote-probe-interval="3", rundir="/var/run/openvswitch", system-id="78a00e1d-70c4-4289-b261-ce2bcfdce17d"} iface_types : [dpdk, dpdkr, dpdkvhostuser, dpdkvhostuserclient, geneve, gre, internal, lisp, patch, stt, system, tap, vxlan] manager_options : [] next_cfg : 142 other_config : {dpdk-init="true", pmd-cpu-mask="0xff00"} ovs_version : "2.8.2" ssl : [] statistics : {} system_type : centos system_version : "7" on 2017/10/16 18:17, Cédric MORIN say: Hi, I have a question regarding meters in OVS, I hope this is the correct mailing list to ask it. According to the FAQ "Since version 2.0, Open vSwitch has OpenFlow protocol support for OpenFlow meters. Currently, only the userspace datapath implements meters" (http://docs.openvswitch.org/en/latest/faq/qos/), and according to the release notes of v.2.8.0 : "The "meter" action is now supported in the userspace datapath" (http://openvswitch.org/releases/NEWS-2.8.0). So I suppose it is now possible to create meters in OVS 2.8.0. I downloaded OVS 2.8.0, then 2.8.1, but I didn't manage to create a meter. I first used directly the OVS command line : ovs-ofctl -O Openflow13 add-meter br0 meter=2,kbps,band=type=drop,rate=15000 I got the following output : " OFPT_ERROR (OF1.3) (xid=0x2): OFPMMFC_INVALID_METER OFPT_METER_MOD (OF1.3) (xid=0x2): ADD meter=2 kbps bands= type=drop rate=15000 " The output is different from v.2.7.2's one : "OFPMMFC_OUT_OF_METERS". I supposed that the command was wrong, so I tried to create a meter through OpenDaylight API, with a command that was successful for CPqD switch. ODL accepted the command, but the rule wasn't created, so the problem must be at switch level. Is meter really implemented in OVS newest versions ? If so, could you please give me a command line to create a meter ? Thank you ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] how many CPU cannot allocate for PMD thread?
I can not answer your question, but I can share my environment: I have 32 cpu: [root@gateway1 ~]# cat /proc/cpuinfo | grep processor | wc -l 32 [root@gateway1 ~]# I config my pmd-cpu-mask with 0xff00. [root@gateway1 ~]# ovs-vsctl get Open_vSwitch . other_config {dpdk-init="true", pmd-cpu-mask="0xff00"} I config my dpdk port with "n_rxq=4", This configuration is important : Bridge br-ext Port bond-ext Interface "ext-dpdk-2" type: dpdk options: {dpdk-devargs=":84:00.1", n_rxq="4"} Interface "ext-dpdk-1" type: dpdk options: {dpdk-devargs=":84:00.0", n_rxq="4"} Bridge br-agg Port bond-agg Interface "agg-dpdk-2" type: dpdk options: {dpdk-devargs=":07:00.1", n_rxq="4"} Interface "agg-dpdk-1" type: dpdk options: {dpdk-devargs=":07:00.0", n_rxq="4"} And then cpu 1600% top - 19:24:27 up 18 days, 24 min, 6 users, load average: 16.00, 16.00, 16.00 Tasks: 419 total, 1 running, 418 sleeping, 0 stopped, 0 zombie %Cpu(s): 50.0 us, 0.0 sy, 0.0 ni, 50.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 26409787+total, 25773403+free, 5427996 used, 935844 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 25799068+avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 32426 openvsw+ 10 -10 5772520 653044 14888 S 1599 0.2 2267:10 ovs-vswitchd [root@gateway1 ~]# top top - 19:24:50 up 18 days, 25 min, 6 users, load average: 16.00, 16.00, 16.00 Tasks: 419 total, 1 running, 418 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu8 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu9 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu10 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu11 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu12 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu14 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu15 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu16 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu17 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu18 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu19 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu20 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu21 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu22 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu23 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu24 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu25 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu26 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu27 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu28 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu29 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu30 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu31 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 26409787+total, 25773369+free, 5428244 used, 935924 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 25799040+avail Mem on 2017/10/16 16:07, BALL SUN write: sorry for late reply we have reinstall the OVS, but still having the same issue. we tried to set the pmd-cpu-mask=3, but only CPU1 is occupied. %Cpu0 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st # /usr/local/bin/ovs-vsctl get Open_vSwitch . other_co
Re: [ovs-discuss] Rate limit based on IP
you can try the meter in the dpdk environment. It can base on a flow. https://github.com/openvswitch/ovs/blob/fa10e59a6b9a894644c99f39035afc427d09a490/tests/dpif-netdev.at#L208 Hi I understood that OVS has rate shaping based on port, is there any way to perform rate shaping on IP level? - RBK ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] Rate limit based on IP
yes I achieve the public network floating IP bandwidth limit is the use of the meter, I have also submitted a path for the ovn: https://mail.openvswitch.org/pipermail/ovs-dev/2017-September/338986.html I do not know if this way is right for you... on 2017/10/23 9:03, BALL SUN write: Hi Guoshuai thank for your suggestion, I will take a look. are you currently using this method? On Fri, Oct 20, 2017 at 6:55 PM, Guoshuai Li wrote: you can try the meter in the dpdk environment. It can base on a flow. https://github.com/openvswitch/ovs/blob/fa10e59a6b9a894644c99f39035afc427d09a490/tests/dpif-netdev.at#L208 Hi I understood that OVS has rate shaping based on port, is there any way to perform rate shaping on IP level? - RBK ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] About ovs2.8.1 & meter & iperf
Hello, ovs 2.8 only support meter in netdev bridge, "netlink" does not support. there are currently some patches, you can follow: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343960.html Thanks, Guoshuai. Hi, excuse me,when I used the ovs2.8.1 and implemented “/ovs-ofctl -O OpenFlow13 add-meter s2 meter=1,kbps,band=type=drop,rate=1/” the CLI output “OFPMMFC_INVALID_METER”. If I typed "/ovs-vsctl set bridge s2 datapath_type=netdev/" before, it was succeed. But if ovs was ”netdev“, the iperf test was failture. /ryu-manager simple_switch_13.py/ /mn --topo linear,3 --mac --switch ovs,protocols=OpenFlow13 --controller remote/ The result is as follows: The server did not show the result. So I really want to know "netdev" model and the meter has what kind of relationship? What to do to use meter in ovs2.8.1 and test success? I hope you can answer it. Thank you very much! ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] ping loss of first packet with OVN l3 logical router.
What about add an incomplete(only ip, no mac) Mac_binding when configuring the route's nexthop? Similar to the linux system: # arp -n 10.157.0.253 (incomplete) eth0 Then ovn-controller sends an arp request for this? When this icmp is sent, the arp has already been requested. It's currently part of the design but it's not great for users, so it'd be nice to fix it someday and I'd be pleased to hear proposals if anyone wants to work on this. ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss