Bug 1983872
| Summary: | [OVN] sctp load_balancer doesn't work when use dpdk in ovn | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | ying xu <yinxu> |
| Component: | OVN | Assignee: | OVN Team <ovnteam> |
| Status: | NEW --- | QA Contact: | ying xu <yinxu> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | FDP 21.F | CC: | ctrautma, jiji, jishi |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Description of problem: sctp load_balancer doesn't work when use dpdk in ovn Version-Release number of selected component (if applicable): # rpm -qa|grep ovn ovn-2021-host-21.06.0-4.el8fdp.x86_64 ovn-2021-21.06.0-4.el8fdp.x86_64 ovn-2021-central-21.06.0-4.el8fdp.x86_64 How reproducible: always Steps to Reproduce: server: systemctl start openvswitch systemctl start ovn-northd ovn-nbctl set-connection ptcp:6641 ovn-sbctl set-connection ptcp:6642 ovs-vsctl set Open_vSwitch . other_config={} ovs-vsctl set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl set Open_vSwitch . other_config:dpdk-lcore-mask=0x02 ovs-vsctl set Open_vSwitch . other_config:dpdk-socket-mem="1024,1024" systemctl restart openvswitch pmd_cmd="python2 /root/dpdk/get_pmd.py" cpu_mask=$($pmd_cmd --cmd host_pmd --nic ens1f1 --pmd 2) ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=$cpu_mask ovs-vsctl add-br br-phy -- set bridge br-phy datapath_type=netdev #ovs-vsctl add-br br-phy #ovs-vsctl add-port br-phy ens1f0 ip link set br-phy up #ip link set ens1f0 up ip addr add 20.0.173.25/24 dev br-phy dpdk1=$(ethtool -i ens1f0 | grep bus-info | awk '{print $2}') ovs-vsctl add-port br-phy dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=$dpdk1 #ovs-vsctl set bridge br-int datapath_type=netdev ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.173.25 external_ids:ovn-bridge-datapath-type=netdev #ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.173.25 #ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=vxlan external_ids:ovn-encap-ip=20.0.173.25 external_ids:ovn-bridge-datapath-type=netdev systemctl restart ovn-controller dpdk0=$(ethtool -i ens1f1 | grep bus-info | awk '{print $2}') ovs-vsctl add-port br-int dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=$dpdk0 ovs-vsctl set interface dpdk0 external_ids:iface-id=ls1p1 ovn-nbctl ls-add ls1 ovn-nbctl lsp-add ls1 ls1p1 ovn-nbctl lsp-set-addresses ls1p1 "00:00:00:01:01:02 192.168.173.1 2001:173::1" ovn-nbctl lsp-add ls1 ls1p2 ovn-nbctl lsp-set-addresses ls1p2 "00:00:00:01:02:02 192.168.173.2 2001:173::2" ovn-nbctl lsp-add ls1 ls1p3 ovn-nbctl lsp-set-addresses ls1p3 "00:00:00:01:03:02 192.168.173.3 2001:173::3" ovn-nbctl lsp-add ls1 ls1p4 ovn-nbctl lsp-set-addresses ls1p4 "00:00:00:01:04:02 192.168.173.4 2001:173::4" ovs-vsctl add-port br-int ls1p2 -- set interface ls1p2 type=internal external_ids:iface-id=ls1p2 ip netns add ls1p2 ip link set ls1p2 netns ls1p2 ip netns exec ls1p2 ip link set ls1p2 address 00:00:00:01:02:02 ip netns exec ls1p2 ip link set ls1p2 up ip netns exec ls1p2 ip addr add 192.168.173.2/24 dev ls1p2 ip netns exec ls1p2 ip addr add 2001:173::2/64 dev ls1p2 ovs-vsctl add-port br-int ls1p4 -- set interface ls1p4 type=internal external_ids:iface-id=ls1p4 ip netns add ls1p4 ip link set ls1p4 netns ls1p4 ip netns exec ls1p4 ip link set ls1p4 address 00:00:00:01:04:02 ip netns exec ls1p4 ip link set ls1p4 up ip netns exec ls1p4 ip addr add 192.168.173.4/24 dev ls1p4 ip netns exec ls1p4 ip addr add 2001:173::4/64 dev ls1p4 ovn-nbctl lr-add lr1 ovn-nbctl lrp-add lr1 lr1ls1 00:01:02:0d:01:01 192.168.173.254/24 2001:173::a/64 ovn-nbctl lsp-add ls1 ls1lr1 ovn-nbctl lsp-set-type ls1lr1 router ovn-nbctl lsp-set-options ls1lr1 router-port=lr1ls1 ovn-nbctl lsp-set-addresses ls1lr1 "00:01:02:0d:01:01 192.168.173.254 2001:173::a" uuid=`ovn-nbctl create load_balancer vips:192.168.173.5="192.168.173.1,192.168.173.2 ovn-nbctl set load_balancer $uuid vips:'"192.168.173.254:8000"'='"192.168.173.1:80,192.168.173.2:80"' ovn-nbctl set load_balancer $uuid vips:'"192.168.1.10:1234"'='"192.168.173.4:8000,192.168.173.2:8000"' ovn-nbctl set logical_switch ls1 load_balancer=$uuid ovn-nbctl set load_balancer $uuid protocol=sctp client: systemctl start openvswitch ovs-vsctl set Open_vSwitch . other_config={} ovs-vsctl set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl set Open_vSwitch . other_config:dpdk-lcore-mask=0x02 ovs-vsctl set Open_vSwitch . other_config:dpdk-socket-mem="1024,1024" systemctl restart openvswitch pmd_cmd="python2 /root/dpdk/get_pmd.py" cpu_mask=$($pmd_cmd --cmd host_pmd --nic ens1f1 --pmd 2) ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=$cpu_mask ovs-vsctl add-br br-phy -- set bridge br-phy datapath_type=netdev #ovs-vsctl add-br br-phy #ovs-vsctl add-port br-phy ens1f0 ip link set br-phy up #ip link set ens1f0 up ip addr add 20.0.173.26/24 dev br-phy dpdk1=$(ethtool -i ens1f0 | grep bus-info | awk '{print $2}') ovs-vsctl add-port br-phy dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=$dpdk1 ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.173.26 external_ids:ovn-bridge-datapath-type=netdev #ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.173.26 #ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:20.0.173.25:6642 external_ids:ovn-encap-type=vxlan external_ids:ovn-encap-ip=20.0.173.26 external_ids:ovn-bridge-datapath-type=netdev systemctl start ovn-controller ovs-vsctl add-port br-int ls1p3 -- set interface ls1p3 type=internal external_ids:iface-id=ls1p3 ip netns add ls1p3 ip link set ls1p3 netns ls1p3 ip netns exec ls1p3 ip link set ls1p3 address 00:00:00:01:03:02 ip netns exec ls1p3 ip link set ls1p3 up ip netns exec ls1p3 ip addr add 192.168.173.3/24 dev ls1p3 ip netns exec ls1p3 ip addr add 2001:173::3/64 dev ls1p3 ip netns add ls1p1 ip link set ens1f1 netns ls1p1 ip netns exec ls1p1 ip link set ens1f1 address 00:00:00:01:01:02 ip netns exec ls1p1 ip link set ens1f1 up ip netns exec ls1p1 ip addr add 192.168.173.1/24 dev ens1f1 ip netns exec ls1p1 ip addr add 2001:173::1/64 dev ens1f1 then, start ncat listening on server: ip netns exec ls1p2 ncat --sctp -l 80 -k >> sctp.log& and client: ip netns exec ls1p1 ncat --sctp -l 80 -k >> sctp.log& then, from ls1p4 start sctp ncat, ip netns exec ls1p4 ncat --sctp 192.168.173.254 8000 <<< s Ncat: Connection refused. Actual results: sctp connection fail. Expected results: sctp LB work. Additional info: tried tcp and udp, work normally.