Ole,

> Now, all this said... I understand the temptation of the solution and
while I think it is likely a bad idea, and likely undeployable, nothing
would stop you from trying it out in VPP if you like. There is some code
that assumes the TCP header follows a 20 byte IP header, but that could
easily dealt with for a prototype. I think I'd like to see where the
industry would be going with this before favouring any upstreaming of such
a change though.

Regarding the VPP modification I thought that you said: "Not impossible to
change the IP4 VPP path, although it would require fixing all code that
finds the L4 header. But I think you would end up in horrific deployment
issues..."  ;)

BTW, good points from you.

Thanks
Soheil


On Fri, Jun 30, 2017 at 1:12 PM, Ole Troan <otr...@employees.org> wrote:

> Dear Soheil,
>
> > We are in the design phase and investigating different platforms to see
> which one might be used in our scenario. Here, I don't wannna discuss the
> characteristics of a software router solution we all already know that! But
> simply one of the key properties of a software solution like VPP should be
> the flexibility that it brings up to the table, which in this case it
> doesn't.
> >
> > Encapsulation techniques won't work in our scenario, because NFVs might
> be third party solutions which expect generally IPv4 packets as their
> input. So any change like encapsulation causes problem for them.
> >
> > Regarding the dynamic header insertion (in this case IP-option) and
> standardization, actually as you know there are already standards defining
> the structure like the old one: RFC 781. Recently there are effort from
> facebook, Barefoot and other guys out there for extending the concept of
> Packet-telemetry using all these available (if we can still say this word!)
> options.
>
> No, RFC781 does not indicate support for header insertion (if all RFCs
> could be that brief! ;-)).
> There is no support in the IP architecture for inserting neither IP4 or
> IP6 options/extension headers by intermediate nodes in the network. There
> are _proposals_ for doing that, but those do not have consensus as of now.
>
> The main issues with header insertion (non-exhaustive list) are:
>  - fundamentally breaks PMTUD
>  - leads to source host receiving ICMP errors on parts of the packet it
> knows nothing about
>  - breaks AH
>
> It might be possible to do this in constrained environments, although the
> IETF argument is always that "packets leak".
> A proposal to do this does have to say something about the three issues
> above at least.
>
> > The key idea is that when you own the network, you need to have
> mechanisms to to measurements and why not doing it in dataplane in high
> speed/low cost compared to control plane.
> >
> > So would you please confirm (or anyone who knows about the future plan
> of VPP) that VPP won't support header option  (which already is defined for
> Ipv4 and other ones)  or dynamic packet header sizes if you will.
>
> I idly tried this in scapy, but couldn't very much replying apart from my
> first-hop router. ;-)
>
> p = sr1(IP(dst="8.8.8.8", options=IPOption())/ICMP())
>
> Now, all this said... I understand the temptation of the solution and
> while I think it is likely a bad idea, and likely undeployable, nothing
> would stop you from trying it out in VPP if you like. There is some code
> that assumes the TCP header follows a 20 byte IP header, but that could
> easily dealt with for a prototype. I think I'd like to see where the
> industry would be going with this before favouring any upstreaming of such
> a change though.
>
> Also note, that NIC offloading features are unlikely to work. Any feature
> like the classifier, which uses vector instructions on fixed offsets in
> packets will not be easily reworked and that the extra header size might
> lead to the header bleeding into another cache line and this will have
> performance consequences.
>
> Best regards,
> Ole
>
>
>
>
>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to