Message ID | 20201123182857.4640-1-andrea.mayer@uniroma2.it |
---|---|
Headers | show |
Series | seg6: add support for SRv6 End.DT4/DT6 behavior | expand |
Before this patch, each SRv6 behavior specifies a set of required attributes that must be provided by the userspace application when such behavior is going to be instantiated. If at least one of the required attributes is not provided, the creation of the behavior fails. The SRv6 behavior framework lacks a way to manage optional attributes. By definition, an optional attribute for a SRv6 behavior consists of an attribute which may or may not be provided by the userspace. Therefore, if an optional attribute is missing (and thus not supplied by the user) the creation of the behavior goes ahead without any issue. This patch explicitly differentiates the required attributes from the optional attributes. In particular, each behavior can declare a set of required attributes and a set of optional ones. The semantic of the required attributes remains *totally* unaffected by this patch. The introduction of the optional attributes does NOT impact on the backward compatibility of the existing SRv6 behaviors. It is essential to note that if an (optional or required) attribute is supplied to a SRv6 behavior which does not expect it, the behavior simply discards such attribute without generating any error or warning. This operating mode remained unchanged both before and after the introduction of the optional attributes extension. The optional attributes are one of the key components used to implement the SRv6 End.DT6 behavior based on the Virtual Routing and Forwarding (VRF) framework. The optional attributes make possible the coexistence of the already existing SRv6 End.DT6 implementation with the new SRv6 End.DT6 VRF-based implementation without breaking any backward compatibility. Further details on the SRv6 End.DT6 behavior (VRF mode) are reported in subsequent patches.
On Mon, 23 Nov 2020 19:28:48 +0100 Andrea Mayer wrote: > - Patch 1 is needed to solve a pre-existing issue with tunneled packets > when a sniffer is attached; > > - Patch 2 improves the management of the seg6local attributes used by the > SRv6 behaviors; > > - Patch 3 adds support for optional attributes in SRv6 behaviors; > > - Patch 4 introduces two callbacks used for customizing the > creation/destruction of a SRv6 behavior; > > - Patch 5 is the core patch that adds support for the SRv6 End.DT4 > behavior; > > - Patch 6 introduces the VRF support for SRv6 End.DT6 behavior; > > - Patch 7 adds the selftest for SRv6 End.DT4 behavior; > > - Patch 8 adds the selftest for SRv6 End.DT6 (VRF mode) behavior; > > - Patch 9 adds the vrftable attribute for End.DT4/DT6 behaviors in iproute2. LGTM! Please address the nit and repost without the iproute2 patch. Mixing the iproute2 patch in has confused patchwork: https://patchwork.kernel.org/project/netdevbpf/list/?series=389667&state=* Note how it thinks that the iproute2 patch is part of the kernel series. This build bot-y thing is pretty new. I'll add a suggestion to our process documentation not to mix patches. > I would like to thank David Ahern for his support during the development of > this patchset. Should I take this to mean that David has review the code off-list?
On 11/24/20 4:49 PM, Jakub Kicinski wrote: > > LGTM! Please address the nit and repost without the iproute2 patch. > Mixing the iproute2 patch in has confused patchwork: > > https://patchwork.kernel.org/project/netdevbpf/list/?series=389667&state=* > > Note how it thinks that the iproute2 patch is part of the kernel > series. This build bot-y thing is pretty new. I'll add a suggestion > to our process documentation not to mix patches. That was me - I suggested doing that. I have done that in the past as has several other people. I don't recall DaveM having a problem, so maybe it is the new patchworks that is not liking it? > >> I would like to thank David Ahern for his support during the development of >> this patchset. > > Should I take this to mean that David has review the code off-list? > reviews and general guidance.
On Tue, 24 Nov 2020 18:24:37 -0700 David Ahern wrote: > On 11/24/20 4:49 PM, Jakub Kicinski wrote: > > > > LGTM! Please address the nit and repost without the iproute2 patch. > > Mixing the iproute2 patch in has confused patchwork: > > > > https://patchwork.kernel.org/project/netdevbpf/list/?series=389667&state=* > > > > Note how it thinks that the iproute2 patch is part of the kernel > > series. This build bot-y thing is pretty new. I'll add a suggestion > > to our process documentation not to mix patches. > > That was me - I suggested doing that. I have done that in the past as > has several other people. I don't recall DaveM having a problem, so > maybe it is the new patchworks that is not liking it? Right, I'm not sure, it's a coin toss whether pw will get the iproute patch first or not (or maybe since 'i' < 'n' we're likely to get the iproute patch first most of the time?) But it's generally not a huge issue for applying the patch. I just like to see the build bot result, to make sure we're not adding W=1 C=1 warnings. > >> I would like to thank David Ahern for his support during the development of > >> this patchset. > > > > Should I take this to mean that David has review the code off-list? > > reviews and general guidance. Great! (I wasn't sure if I should wait for your review tags, hence the poke.)
On 11/24/20 6:58 PM, Jakub Kicinski wrote: > But it's generally not a huge issue for applying the patch. I just like > to see the build bot result, to make sure we're not adding W=1 C=1 > warnings. ah, the build bot part is new. got it.
On Tue, 24 Nov 2020 21:37:18 -0700 David Ahern wrote: > On 11/24/20 6:58 PM, Jakub Kicinski wrote: > > But it's generally not a huge issue for applying the patch. I just like > > to see the build bot result, to make sure we're not adding W=1 C=1 > > warnings. > > ah, the build bot part is new. got it. BTW I was wondering for the longest time how to structure things so that build bot can also build iproute2 in case we want to run tests attached to the series and the tests depend on iproute2 changes... But let's cross that bridge when we get there.
On 11/25/20 9:47 AM, Jakub Kicinski wrote: > On Tue, 24 Nov 2020 21:37:18 -0700 David Ahern wrote: >> On 11/24/20 6:58 PM, Jakub Kicinski wrote: >>> But it's generally not a huge issue for applying the patch. I just like >>> to see the build bot result, to make sure we're not adding W=1 C=1 >>> warnings. >> >> ah, the build bot part is new. got it. > > BTW I was wondering for the longest time how to structure things so > that build bot can also build iproute2 in case we want to run tests > attached to the series and the tests depend on iproute2 changes... > > But let's cross that bridge when we get there. > Why not cross it now? You handled the switch over to new a patchworks with a build bot, so we can take advantage of automation. Seems like the bot needs to detect 'net', 'net-next', 'bpf' and 'bpf-next' as they are all different trees for the kernel patches. iproute2 is just another tree, so it should be able to put those in a different bucket for automated builds - even if it means a 'set' crosses trees.
On Wed, 25 Nov 2020 10:37:20 -0700 David Ahern wrote: > On 11/25/20 9:47 AM, Jakub Kicinski wrote: > > On Tue, 24 Nov 2020 21:37:18 -0700 David Ahern wrote: > >> On 11/24/20 6:58 PM, Jakub Kicinski wrote: > >>> But it's generally not a huge issue for applying the patch. I just like > >>> to see the build bot result, to make sure we're not adding W=1 C=1 > >>> warnings. > >> > >> ah, the build bot part is new. got it. > > > > BTW I was wondering for the longest time how to structure things so > > that build bot can also build iproute2 in case we want to run tests > > attached to the series and the tests depend on iproute2 changes... > > > > But let's cross that bridge when we get there. > > Why not cross it now? You handled the switch over to new a patchworks > with a build bot, so we can take advantage of automation. > > Seems like the bot needs to detect 'net', 'net-next', 'bpf' and > 'bpf-next' as they are all different trees for the kernel patches. > iproute2 is just another tree, so it should be able to put those in a > different bucket for automated builds - even if it means a 'set' crosses > trees. Actually part of the reason is that we use up 32 vCPUs just to do build testing. I don't think we can afford to individually selftest every series. And if we only run the tests ~nightly we can grab all outstanding patches for iproute2 from the ML and we should be good. At least that's my current thinking. I probably won't have time to implement any of this until Dave is back 100% and then some, anyway ;)
Hi Jakub, On Tue, 24 Nov 2020 15:49:04 -0800 Jakub Kicinski <kuba@kernel.org> wrote: > LGTM! Please address the nit and repost without the iproute2 patch. Thanks for the review of the patchset. > Mixing the iproute2 patch in has confused patchwork: > > https://patchwork.kernel.org/project/netdevbpf/list/?series=389667&state=* > > Note how it thinks that the iproute2 patch is part of the kernel > series. This build bot-y thing is pretty new. I'll add a suggestion > to our process documentation not to mix patches. As discussed, I will resubmit the kernel patches and the iproute2 patch in two separate patchsets. Thank you all, Andrea