On 5/21/25 7:32 AM, Thenveer Poolakkanni wrote: > Hi Ilya, > Thank you for the insights. > As suggested, I created a flow rule with |in_port=pf0 actions=output:pf1| > to avoid using the default |NORMAL| action. I also checked the link status > of the bridge port. It was initially down, so I brought it up, but its > state then changed to |UNKNOWN|. > Despite these changes, I'm still not receiving packets back. Here are some > logs for reference: > :ovs-netdev: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc > fq_codel state UNKNOWN group default qlen 1000 > link/ether 62:d6:ea:54:b9:1e brd ff:ff:ff:ff:ff:ff > : br0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel > state UNKNOWN group default qlen 1000 > link/ether 3a:30:0e:d7:af:4a brd ff:ff:ff:ff:ff:ff > > OpenFlow flow dump: > > cookie=0x0, duration=350.705s, table=0, n_packets=3188, n_bytes=209110, > in_port=pf0 actions=output:pf1 > cookie=0x0, duration=402.852s, table=0, n_packets=23, n_bytes=2616, > priority=0 actions=NORMAL
You only created a rule in one direction. You need a separate rule for traffic coming back from pf1 to pf0. And you need to either delete the NORMAL rule, or use higher priority for your direct ones, otherwise the behavior is undefined. Best regards, Ilya Maximets. > > It seems the packets are not returning even with the explicit flow rule. > Is there anything else I should try on the OVS side? > Best regards, > Thenveer > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > *From:* Ilya Maximets <i.maxim...@ovn.org> > *Sent:* Wednesday, May 14, 2025 4:18 PM > *To:* Thenveer Poolakkanni <thenveer.poolakka...@iwave-global.com>; > ovs-discuss@openvswitch.org <ovs-discuss@openvswitch.org> > *Cc:* Ayshathul Thuhara <ayshathul.thuh...@iwave-global.com>; > i.maxim...@ovn.org <i.maxim...@ovn.org> > *Subject:* Re: [ovs-discuss] Packet Drop Issue in DPDK-OVS Bridge on Alveo > U200 > > On 5/9/25 6:19 AM, Thenveer Poolakkanni via discuss wrote: >> Hi Team, >> >> I’m currently working with Open vSwitch (OVS) using the DPDK datapath >> on a Alveo U200, and I’ve encountered an issue where packets are not >> being received back on the traffic generator after being transmitted >> by OVS. >> >> Setup Details: >> >> - Traffic Generator: >> - Port 0 → Connected to Alveo U200 pf0 >> - Port 1 → Connected to Alveo U200 pf1 >> - OVS is running on the Alveo U200 (datapath_type=netdev), and both >> `pf0` and `pf1` are added as DPDK ports to a bridge named `br0`. >> >> OVS Configuration: >> d76b4ea2-df9e-4d2e-8f9d-06210013ffef >> Bridge br0 >> datapath_type: netdev >> Port br0 >> Interface br0 >> type: internal >> Port pf0 >> Interface pf0 >> type: dpdk >> options: {dpdk-devargs="0000:08:00.0", n_rxq="4", >> n_rxq_desc="1024", n_txq="4", n_txq_desc="1024"} >> Port pf1 >> Interface pf1 >> type: dpdk >> options: {dpdk-devargs="0000:08:00.1", n_rxq="4", >> n_rxq_desc="1024", n_txq="4", n_txq_desc="1024"} >> >> After sending packets from the traffic generator to `pf0`, here are the >> stats: >> >> OFPST_PORT reply (xid=0x2): 3 ports >> port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0 >> tx pkts=0, bytes=0, drop=100, errs=0, coll=0 >> port pf0: rx pkts=100, bytes=6000, drop=0, errs=0, frame=?, over=?, crc=? >> tx pkts=0, bytes=0, drop=0, errs=0, coll=? >> port pf1: rx pkts=0, bytes=0, drop=0, errs=0, frame=?, over=?, crc=? >> tx pkts=100, bytes=6000, drop=0, errs=0, coll=? >> >> >> Why are packets being dropped at the `LOCAL` port, and is that affecting >> forwarding? > > You're likely sending traffic only in one direction, so the bridge > can't learn where the destination is and broadcasts these packets > to every port on the bridge. The bridge port is probably down, so > packets sent to it a dropped. Broadcasting to kernel interfaces > will significantly affect performance, but your packets should still > arrive just fine on the other port. So, if you don't see them, > the problem is likely with the driver or a card or otherwise outside > of OVS. > > To avoid brodcasting you either need to send some traffic in the > opposite direction or stop using the default NORMAL action in your > OpenFlow configuration. A rule like in_port=pf0,actions:pf1 would > just forward everything directly without learning and broadcasting. > > Best regards, Ilya Maximets. _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss