Re: [net-next,v2,4/5] seg6: add support for the SRv6 End.DT4 behavior

From: Jakub Kicinski
Date: Fri Nov 13 2020 - 18:55:02 EST


On Sat, 14 Nov 2020 00:00:24 +0100 Andrea Mayer wrote:
> On Fri, 13 Nov 2020 13:40:10 -0800
> Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
>
> > On Fri, 13 Nov 2020 11:40:36 -0800 Jakub Kicinski wrote:
> > > > agreed. The v6 variant has existed for a while. The v4 version is
> > > > independent.
> > >
> > > Okay, I'm not sure what's the right call so I asked DaveM.
> >
> > DaveM raised a concern that unless we implement v6 now we can't be sure
> > the interface we create for v4 is going to fit there.
> >
> > So Andrea unless it's a major hurdle, could you take a stab at the v6
> > version with VRFs as part of this series?
>
> I can tackle the v6 version but how do we face the compatibility issue raised
> by Stefano in his message?
>
> if it is ok to implement a uAPI that breaks the existing scripts, it is relatively
> easy to replicate the VRF-based approach also in v6.

We need to keep existing End.DT6 as is, and add a separate
implementation.

The way to distinguish between the two could be either by passing via
netlink a flag attribute (which would request use of VRF in both
cases); using a different attribute than SEG6_LOCAL_TABLE for the
table id (or perhaps passing VRF's ifindex instead), e.g.
SEG6_LOCAL_TABLE_VRF; or adding a new command
(SEG6_LOCAL_ACTION_END_DT6_VRF) which would behave like End.DT4.