On Thu, Sep 14, 2023 at 4:09 PM Mark Michelson <[email protected]> wrote:
>
> Thanks for adding the test Lorenzo.
>
> Acked-by: Mark Michelson <[email protected]>

Thanks.  I applied this patch to main and branch-23.09.

I've backported the patch upto branch-22.03.  After the CI tests pass
I'll push them.

Numan

>
> On 9/7/23 10:56, Lorenzo Bianconi wrote:
> > Check if parent_name is properly set in build_gateway_get_l2_hdr_size
> > routine if tag_request is set 0, since parent_name is mandatory for
> > dynamically allocated VLANID.
> >
> > Reported-at: https://issues.redhat.com/browse/FDP-38
> > Fixes: b68753a573cd ("northd: dynamically compute l2 hdr len for 
> > check_pkt_larger action")
> > Signed-off-by: Lorenzo Bianconi <[email protected]>
> > ---
> > Changes since v1:
> > - add more unit-tests
> > ---
> >   northd/northd.c     |  8 +++++++-
> >   tests/ovn-northd.at | 17 +++++++++++++++++
> >   2 files changed, 24 insertions(+), 1 deletion(-)
> >
> > diff --git a/northd/northd.c b/northd/northd.c
> > index 3eaa43f07..b041467a3 100644
> > --- a/northd/northd.c
> > +++ b/northd/northd.c
> > @@ -12282,7 +12282,13 @@ build_gateway_get_l2_hdr_size(struct ovn_port *op)
> >               struct ovn_port *localnet_port = peer->od->localnet_ports[i];
> >               const struct nbrec_logical_switch_port *nbsp = 
> > localnet_port->nbsp;
> >
> > -            if (nbsp && nbsp->n_tag_request > 0) {
> > +            if (!nbsp || !nbsp->tag_request) {
> > +                continue;
> > +            }
> > +
> > +            if (nbsp->tag_request[0] ||
> > +                (nbsp->parent_name && nbsp->parent_name[0])) {
> > +                /* Valid tag. */
> >                   return VLAN_ETH_HEADER_LEN;
> >               }
> >           }
> > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> > index 23dbe111f..3cee55283 100644
> > --- a/tests/ovn-northd.at
> > +++ b/tests/ovn-northd.at
> > @@ -6267,6 +6267,23 @@ AT_CHECK([grep "lr_in_admission" lr0flows | grep -e 
> > "check_pkt_larger" | sort],
> >     table=0 (lr_in_admission    ), priority=50   , match=(eth.mcast && 
> > inport == "lr0-public"), action=(reg9[[1]] = check_pkt_larger(1518); 
> > xreg0[[0..47]] = 00:00:20:20:12:13; next;)
> >   ])
> >
> > +# tag 0 requires a parent port
> > +check ovn-nbctl --wait=sb set Logical_Switch_Port ext-port tag_request=0
> > +
> > +ovn-sbctl dump-flows lr0 > lr0flows
> > +AT_CHECK([grep "lr_in_admission" lr0flows | grep -e "check_pkt_larger" | 
> > sort], [0], [dnl
> > +  table=0 (lr_in_admission    ), priority=50   , match=(eth.dst == 
> > 00:00:20:20:12:13 && inport == "lr0-public"), action=(reg9[[1]] = 
> > check_pkt_larger(1514); xreg0[[0..47]] = 00:00:20:20:12:13; next;)
> > +  table=0 (lr_in_admission    ), priority=50   , match=(eth.mcast && 
> > inport == "lr0-public"), action=(reg9[[1]] = check_pkt_larger(1514); 
> > xreg0[[0..47]] = 00:00:20:20:12:13; next;)
> > +])
> > +
> > +check ovn-nbctl --wait=sb set Logical_Switch_Port ext-port 
> > parent_name=ext-parent-port
> > +
> > +ovn-sbctl dump-flows lr0 > lr0flows
> > +AT_CHECK([grep "lr_in_admission" lr0flows | grep -e "check_pkt_larger" | 
> > sort], [0], [dnl
> > +  table=0 (lr_in_admission    ), priority=50   , match=(eth.dst == 
> > 00:00:20:20:12:13 && inport == "lr0-public"), action=(reg9[[1]] = 
> > check_pkt_larger(1518); xreg0[[0..47]] = 00:00:20:20:12:13; next;)
> > +  table=0 (lr_in_admission    ), priority=50   , match=(eth.mcast && 
> > inport == "lr0-public"), action=(reg9[[1]] = check_pkt_larger(1518); 
> > xreg0[[0..47]] = 00:00:20:20:12:13; next;)
> > +])
> > +
> >   AT_CLEANUP
> >   ])
> >
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to