On Mon, 12 Oct 2026 16:17:41 +0800
Hangbin Liu <[email protected]> wrote:

> [snip]
> > +static bool seg6_flv8986_enabled(__u32 fops)
> > +{
> > +   return fops & SEG6_LOCAL_FLV8986_SUPP_OPS;
> > +}
> > +
> > +/* check whether the NEXT-C-SID processing has to be used for the packet,
> > + * instead of the RFC8986 flavors set for the given SRv6 End* behavior
> > + * instance.
> > + *
> > + * This function returns:
> > + *  - true, when the packet has to go through the NEXT-C-SID processing;
> > + *  - false, when NEXT-C-SID is not configured or the packet has to be
> > + *    processed on the basis of the RFC8986 flavors.
> > + */
> > +static bool seg6_use_next_csid(struct sk_buff *skb,
> > +                          const struct seg6_flavors_info *finfo)
> > +{
> > +   const struct in6_addr *addr;
> > +   __u32 fops = finfo->flv_ops;
> > +
> > +   if (!seg6_next_csid_enabled(fops))
> > +           return false;
> > +
> > +   addr = &ipv6_hdr(skb)->daddr;
> > +
> > +   /* NEXT-C-SID and the RFC8986 flavors combine according to the
> > +    * DA.Argument (see RFC9800, sections 4.1.1 and 4.1.7):
> > +    *
> > +    *       DA.Argument   RFC8986 flavors   processing
> > +    *   (1) != 0          any               NEXT-C-SID only, SL unchanged
> > +    *   (2) == 0          none              the behavior, e.g. End
> > +    *   (3) == 0          one or more       the behavior with its flavors,
> > +    *                                       e.g. End with PSP
> > +    *
> > +    * In (2), the packet still goes through the NEXT-C-SID processing,
> > +    * which runs the behavior (e.g. End) when the DA.Argument is zero.
> > +    */
> > +   return !seg6_flv8986_enabled(fops) ||
> > +          !seg6_next_csid_is_arg_zero(addr, finfo);
> 
> nit: based on the comment, maybe we can change the order to
> 
>       return !seg6_next_csid_is_arg_zero(addr, finfo) ||
>              !seg6_flv8986_enabled(fops);
> 
> No need to change if there is no new version patch.
> 
> > +}
> 
> [snip]

Hi Hangbin,

thanks for the review and for the suggestion. I would prefer to keep
this order. The table in the comment is meant to describe the cases
rather than the order of the checks. Since testing the 32-bit flavor
mask can be cheaper than checking the DA.Argument, I just put the mask
test first.

Let me know if you see it differently.

Ciao,
Andrea

Reply via email to