On 1/12/24 15:31, Reshma Sreekumar wrote: > Thanks for your suggestion. > > However, this is what I observe: > > ~$ *sudo ovs-vsctl add-port br0 veth1 -- set port veth1 qos=@myqos -- > --id=@myqos create qos type=linux-noop* > ac47866d-6812-47a0-a5e2-ec00cfa0e849 > ~$ sudo ovs-vsctl show > f96fba96-cc42-4d96-8eba-c8b4e3b4af2f > Bridge br0 > Port veth1 > Interface veth1 > Port br0 > Interface br0 > type: internal > ovs_version: "2.17.1" > ~$ sudo tc qdisc add dev veth1 ingress > ~$ sudo tc -p -s -d qdisc show dev veth1 > qdisc noqueue 0: root refcnt 2 > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > qdisc ingress ffff: parent ffff:fff1 ----------------> ingress qdisc present > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > > > ~$ sudo tcpdump -i veth1 > tcpdump: verbose output suppressed, use -v[v]... for full protocol decode > listening on veth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes > ^C > 0 packets captured > 0 packets received by filter > 0 packets dropped by kernel > > > ~$ sudo tc -p -s -d qdisc show dev veth1 > qdisc noqueue 0: root refcnt 2 ------------ > ingress qdisc lost > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > ~$
Hmm, yeah, I missed the fact that you're creating an ingress qdisc. Ingress qdiscs are controlled by OVS as well via ingress_policing_* options. These default to 0 that means no policing. And OVS ensures that there is no policing by removing any ingress qdiscs form the interface. There is no work around for that. linux-noop only allows non-ingress qdiscs. Ingress qdiscs may also be used for hardware offloading purposes, so the externally created ones will also be removed in this case. If you want to use ingress qdiscs for the purpose of ingress traffic policing, you should use the ingress_policing_* configuration options instead. If you have some other use case for external ingress qdiscs, OVS will have to be changed to be aware of it. Best regards, Ilya Maximets. > > Regards, > RS > > On Thu, Jan 11, 2024 at 5:42 PM Ilya Maximets <i.maxim...@ovn.org > <mailto:i.maxim...@ovn.org>> wrote: > > (trying to re-send as gmail decided to not deliver the previous email) > > On 1/11/24 17:38, Ilya Maximets wrote: > > On 1/11/24 17:25, Reshma Sreekumar via discuss wrote: > >> Hello all, > >> > >> An ingress qdisc configured on a port that is enslaved into an > OpenvSwitch > >> bridge gets automatically deleted when tcpdump is run on that port! > > > > OVS owns QoS configuration of ports attached to it, so it is expected. > > If you want OVS to avoid removing qdiscs configured externally, you > > may configure a "linux-noop" QoS class for this interface. E.g.: > > > > $ ovs-vsctl set port veth1 qos=@myqos -- --id=@myqos create qos > type=linux-noop > > > > Best regards, Ilya Maximets. > > > >> > >> *OVS version :* > >> > >> ovs-vsctl (Open vSwitch) 2.17.1 > >> DB Schema 8.3.0 > >> * > >> * > >> *OVS bridge config* > >> > >> Bridge br0 > >> Port br0 > >> Interface br0 > >> type: internal > >> Port L3port > >> Interface L3port > >> type: internal > >> Port veth1 > >> Interface veth1 > >> > >> *Steps to reproduce:* > >> > >> 1. sudo tc qdisc add dev veth1 ingress > >> 2. sudo tc filter add dev veth1 parent ffff: protocol all u32 match > u32 0 0 action mirred ingress redirect dev ifb0 > >> 3. sudo tcpdump -i veth1 > >> > >> *And by running `tcpdump`, the ingress qdisc is lost!* > >> > >> Thanks & Regards, > >> Reshma Sreekumar > > > _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss