Re: [ovs-discuss] Ingress qdisc on ovs-bridge-enslaved port get automatically removed

2024-01-12 Thread Ilya Maximets via discuss
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 : parent :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  > 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 : 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


Re: [ovs-discuss] Ingress Qdisc automatically removed for ovs-enslaved ports

2024-01-12 Thread Reshma Sreekumar via discuss
The message from Ilya was somehow missed! Thanks for pointing it out and I
will continue discussion on the other thread.

Regards,
RS

On Fri, Jan 12, 2024 at 2:55 PM Eelco Chaudron  wrote:

>
>
> On 12 Jan 2024, at 14:35, 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 version :
> >
> > ovs-vsctl (Open vSwitch) 2.17.1 (also seen on 3.2.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 : protocol all u32 match u32
> 0 0
> > action mirred ingress redirect dev ifb0
> > 3. sudo tcpdump -i veth1
> >
> > And by running `tcpdump`/by setting "promisc", the ingress qdisc is lost!
> >
> > Are there any known workarounds for this issue? Thanks in advance!
>
> Did you see Ilya’s reply to your earlier email?
>
> https://mail.openvswitch.org/pipermail/ovs-discuss/2024-January/052870.html
>
> //Eelco
>
>
> >
> >
> > Thanks & Regards,
> > Reshma Sreekumar
> > ___
> > 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] Ingress qdisc on ovs-bridge-enslaved port get automatically removed

2024-01-12 Thread Reshma Sreekumar via discuss
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 : parent :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
~$

Regards,
RS

On Thu, Jan 11, 2024 at 5:42 PM Ilya Maximets  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 : 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


Re: [ovs-discuss] Ingress Qdisc automatically removed for ovs-enslaved ports

2024-01-12 Thread Eelco Chaudron via discuss


On 12 Jan 2024, at 14:35, 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 version :
>
> ovs-vsctl (Open vSwitch) 2.17.1 (also seen on 3.2.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 : protocol all u32 match u32 0 0
> action mirred ingress redirect dev ifb0
> 3. sudo tcpdump -i veth1
>
> And by running `tcpdump`/by setting "promisc", the ingress qdisc is lost!
>
> Are there any known workarounds for this issue? Thanks in advance!

Did you see Ilya’s reply to your earlier email?

https://mail.openvswitch.org/pipermail/ovs-discuss/2024-January/052870.html

//Eelco


>
>
> Thanks & Regards,
> Reshma Sreekumar
> ___
> 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


[ovs-discuss] Ingress Qdisc automatically removed for ovs-enslaved ports

2024-01-12 Thread Reshma Sreekumar via discuss
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 version :

ovs-vsctl (Open vSwitch) 2.17.1 (also seen on 3.2.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 : protocol all u32 match u32 0 0
action mirred ingress redirect dev ifb0
3. sudo tcpdump -i veth1

And by running `tcpdump`/by setting "promisc", the ingress qdisc is lost!

Are there any known workarounds for this issue? Thanks in advance!



Thanks & Regards,
Reshma Sreekumar
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss