Hi Andrea,
On Mon, Oct 12, 2026 at 02:59:00AM +0200, Andrea Mayer wrote:
> On Fri, 09 Oct 2026 17:58:38 +0800
> Hangbin Liu <[email protected]> wrote:
> 
> > From: Hangbin Liu <[email protected]>
> > 
> > Previously End.X only supported NEXT-C-SID, with a plain fallback to
> > input_action_end_x_core(). Add PSP End.X processing by reusing
> > end_flv8986_core().
> > 
> > Add SEG6_LOCAL_FLV8986_SUPP_OPS to SEG6_LOCAL_END_X_FLV_SUPP_OPS so
> > End.X advertises PSP flavor support.
> > 
> > Signed-off-by: Hangbin Liu <[email protected]>
> > ---
> > 
> > For Sashiko:
> > 
> > With the SEG6_LOCAL_END_X_FLV_SUPP_OPS mask widened, parse_nla_flavors()
> > now accept the combination next-csid plus psp for an End.X instance. And
> > the current code is unable to handle this combination. The End instance
> > also has this issue. Andrea is preparing a fix for this bug.
> 
> Hi Hangbin,
> 
> thanks for v2, and for your work.
> 
> The End fix is now posted, to net-next and not to net as I wrote on
> v1, since the issues it fixes have been there since PSP was added:
> 
>   https://lore.kernel.org/netdev/[email protected]/

Yes, I saw it.

> 
> > ---
> >  net/ipv6/seg6_local.c | 15 ++++++++++++---
> >  1 file changed, 12 insertions(+), 3 deletions(-)
> >
> > diff --git a/net/ipv6/seg6_local.c b/net/ipv6/seg6_local.c
> > index 4fcfcd48cfae..521a9b0c0929 100644
> > --- a/net/ipv6/seg6_local.c
> > +++ b/net/ipv6/seg6_local.c
> > @@ -121,7 +121,8 @@ struct bpf_lwt_prog {
> >  
> >  #define SEG6_LOCAL_END_FLV_SUPP_OPS        (SEG6_F_LOCAL_FLV_NEXT_CSID | \
> >                                      SEG6_LOCAL_FLV8986_SUPP_OPS)
> > -#define SEG6_LOCAL_END_X_FLV_SUPP_OPS      SEG6_F_LOCAL_FLV_NEXT_CSID
> > +#define SEG6_LOCAL_END_X_FLV_SUPP_OPS      (SEG6_F_LOCAL_FLV_NEXT_CSID | \
> > +                                    SEG6_LOCAL_FLV8986_SUPP_OPS)
> >  
> >  struct seg6_flavors_info {
> >     /* Flavor operations */
> > [snip]
> > @@ -923,12 +924,20 @@ static int input_action_end_x(struct sk_buff *skb, 
> > struct seg6_local_lwt *slwt)
> >  {
> >     const struct seg6_flavors_info *finfo = &slwt->flv_info;
> >     __u32 fops = finfo->flv_ops;
> > +   int ret;
> > +
> > +   if (!fops)
> > +           return input_action_end_x_core(skb, slwt);
> >  
> >     /* check for the presence of NEXT-C-SID since it applies first */
> >     if (seg6_next_csid_enabled(fops))
> >             return end_x_next_csid_core(skb, slwt);
> 
> Here End.X could do what End does in the fix: call
> seg6_use_next_csid() instead of seg6_next_csid_enabled(), so that a
> packet with a zero Argument is processed as End.X with PSP.
> 
> Does it work for you to rebase this series on top of the End fix,
> once it is merged, and make that change in this patch? Then End.X
> handles the combination from the beginning.

OK, hope it doesn't take too long time.

> 
> The selftests of the two series conflict in srv6_end_flavors_test.sh,
> and they set up the test environment differently. If you want a hand
> with that part, I am glad to help.

I will review the selftest update and try rebase my test on yours.
If there is a need, I will ask for your help.

> 
> Side note: I received only part of this series. Could you please also
> Cc [email protected], in this thread and on the next versions?

Sure, I will.

Thanks
Hangbin

Reply via email to