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