tcpdump mailing list archives
Re: Request for Geneve DLT type
From: Jesse Gross <jesse () nicira com>
Date: Tue, 27 Jan 2015 17:03:17 -0800
On Tue, Jan 27, 2015 at 4:53 PM, Guy Harris <guy () alum mit edu> wrote:
On Jan 27, 2015, at 4:46 PM, Jesse Gross <jesse () nicira com> wrote:I'm working on implementing support for Geneve in libpcap, which is documented here: http://tools.ietf.org/html/draft-gross-geneve-02 Geneve is a tunneling protocol than can encapsulate many different things - normally this would be Ethernet, IP, or IPv6 but it can be anything with an EtherType. I would like for filters that appear after the Geneve keyword to apply to the inner payload, i.e. geneve && ip. Since the inner protocol is no longer the same as the outer wire format, the checks that are done on linktype don't really make sense at that point. The easiest solution would seem to be to allocate a new DLT for Geneve and change to that when processing the inner header, so I'm requesting a new type for that purpose. I realize that this is a little weird because it's not actually a format that will ever appear in pcap files and could also be handled purely internally (similar to the is_pppoes variable). However, having implemented it both ways, it definitely seems cleaner to have a new type that fits into the existing switch statements rather than a bunch on one-off checks.Having a placeholder DLT_ type that doesn't actually correspond to anything you get from an interface, and a corresponding LINKTYPE_ value that won't ever appear in files, definitely doesn't seem at all clean to me; it's using DLT_/LINKTYPE_ values for a purpose completely different from the purpose for which they are intended.
Yeah, I understand that it's not great. The code is clean (and more robust since it avoids cases where Geneve isn't properly handled) but it is externally visible when it should not be.
I will see whether the handling of PPPoE and MPLS can be cleaned up internally to gencode.c; if so, *that* would be the right way to handle Geneve.
OK, I'll go down this path instead. If you have any ideas on how to make it better, that would be great. _______________________________________________ tcpdump-workers mailing list tcpdump-workers () lists tcpdump org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers
Current thread:
- Request for Geneve DLT type Jesse Gross (Jan 27)
- Re: Request for Geneve DLT type Guy Harris (Jan 27)
- Re: Request for Geneve DLT type Jesse Gross (Jan 27)
- Re: Request for Geneve DLT type Michael Richardson (Jan 28)
- Re: Request for Geneve DLT type Guy Harris (Jan 27)