mbox series

[RFC,v2,0/5] seg6: Segment routing fixes

Message ID 1559933708-13947-1-git-send-email-tom@quantonium.net
Headers show
Series seg6: Segment routing fixes | expand

Message

Tom Herbert June 7, 2019, 6:55 p.m. UTC
This patch set includes fixes to bring the segment routing
implementation into conformance with the latest version of the
draft (draft-ietf-6man-segment-routing-header-19). Also, segment
routing receive function calls ip6_parse to properly parse TLVs
in parsing loop.

Changes include:

  - Update TLV macro definitions. Mark obsoleted TLVs as such, add
    definitions for PAD1 and PADN
  - Mark obsoleted flags as such
  - Implement parsing loop in sr_has_hmac to find HMAC TLV without
    relying on obsoleted flag
  - Parameterize ip6_parse_tlv so that it can be used for parsing
    segment routing TLVs
  - Add sysctls for segment routing TLV parsing limits
  - Segment routing receive functions call ip6_parse_tlv

Tom Herbert (5):
  seg6: Fix TLV definitions
  seg6: Obsolete unused SRH flags
  ipv6: Paramterize TLV parsing
  seg6: Add sysctl limits for segment routing header
  seg6: Leverage ip6_parse_tlv

 include/net/ipv6.h         | 31 ++++++++++-------
 include/net/netns/ipv6.h   |  2 ++
 include/net/seg6.h         |  5 +++
 include/net/seg6_hmac.h    |  2 +-
 include/uapi/linux/seg6.h  | 54 +++++++++++++++++++++++------
 net/ipv6/af_inet6.c        |  2 ++
 net/ipv6/exthdrs.c         | 84 +++++++++++++++++++++++++++++++++++++++-------
 net/ipv6/seg6_hmac.c       | 16 ++-------
 net/ipv6/seg6_local.c      | 21 ++++++++----
 net/ipv6/sysctl_net_ipv6.c | 16 +++++++++
 10 files changed, 176 insertions(+), 57 deletions(-)

Comments

David Lebrun June 8, 2019, 10:39 a.m. UTC | #1
On 07/06/2019 19:55, Tom Herbert wrote:
> This patch set includes fixes to bring the segment routing
> implementation into conformance with the latest version of the
> draft (draft-ietf-6man-segment-routing-header-19). Also, segment
> routing receive function calls ip6_parse to properly parse TLVs
> in parsing loop.

Thanks for your patch set !

General comment regarding uapi changes: it might be wise to wait for RFC 
status in case the IESG or IANA decide different type/flags values.
Tom Herbert June 8, 2019, 3:27 p.m. UTC | #2
On Sat, Jun 8, 2019 at 3:39 AM David Lebrun <dav.lebrun@gmail.com> wrote:
>
> On 07/06/2019 19:55, Tom Herbert wrote:
> > This patch set includes fixes to bring the segment routing
> > implementation into conformance with the latest version of the
> > draft (draft-ietf-6man-segment-routing-header-19). Also, segment
> > routing receive function calls ip6_parse to properly parse TLVs
> > in parsing loop.
>
> Thanks for your patch set !
>
> General comment regarding uapi changes: it might be wise to wait for RFC
> status in case the IESG or IANA decide different type/flags values.

David,

It's a "chicken and the egg problem". If we wait for publication to
implement the protocol, then we can't implement the protocol which is
necessary for publication. So we have to implement and deploy Internet
Drafts, but the definition of I-Ds expressly makes them "works in
progress" that can change at any time.

In this case, the segment routing draft is in working group last call
so it's unlikely that any major changes will occur. There is one
proposed change in changing a padding value, it has not been accepted
by the WG. IESG and IANA are very unlikely to impose different
protocol parameter values. A potential hangup for publication is that
there is very little evidence that large portions of the draft have
been implemented. Linux is the only draft cited as having implemented
TLVs and HMAC, but as these patches point out it's pretty out of date
(HMAC flag stil used, no padding, no parse loop). These patches should
help the argument that segment routing can move forward.

Tom
Edward Cree June 10, 2019, 12:54 p.m. UTC | #3
On 07/06/2019 19:55, Tom Herbert wrote:
> This patch set includes fixes to bring the segment routing
> implementation into conformance with the latest version of the
> draft (draft-ietf-6man-segment-routing-header-19).
AIUI the concept of "conformance" doesn't really belong in the context
 of an Internet-Draft.  See e.g. RFC2026 §2.2, and the I-D preface
    'It is inappropriate to use Internet-Drafts as reference
     material or to cite them other than as "work in progress."'

-Ed
Edward Cree June 10, 2019, 2:07 p.m. UTC | #4
On 10/06/2019 15:03, Tom Herbert wrote:
> On Mon, Jun 10, 2019, 5:54 AM Edward Cree <ecree@solarflare.com <mailto:ecree@solarflare.com>> wrote:
>
>     On 07/06/2019 19:55, Tom Herbert wrote:
>     > This patch set includes fixes to bring the segment routing
>     > implementation into conformance with the latest version of the
>     > draft (draft-ietf-6man-segment-routing-header-19).
>     AIUI the concept of "conformance" doesn't really belong in the context
>
>
> They can't be referred to as standards, but if conform is too strong a term, maybe we can say implements draft xyz.
That seems reasonable, yes.