Add functionality to the datagram module
Add functionality to the datagram module

The new method parse_match() allows the parsing and matching of a
single protocol header without having to allocate a table, which can
help to avoid garbage.

The new method parse_n() parses exactly n protocol headers without
applying any additional checks.

Also new is the pop_raw() method that pops a protocol header without
parsing it.  This requires the application to already know the type
and size of the next header.

lukego/snabb,wingo/snabb,kbara/snabb,snabbco/snabb,justincormack/snabbswitch,virtualopensystems/snabbswitch,Igalia/snabbswitch,plajjan/snabbswitch,dpino/snabb,fhanik/snabbswitch,Igalia/snabbswitch,plajjan/snabbswitch,wingo/snabb,snabbco/snabb,snabbco/snabb,lukego/snabb,heryii/snabb,lukego/snabbswitch,xdel/snabbswitch,pirate/snabbswitch,wingo/snabbswitch,hb9cwp/snabbswitch,Igalia/snabbswitch,lukego/snabbswitch,aperezdc/snabbswitch,andywingo/snabbswitch,kbara/snabb,mixflowtech/logsensor,fhanik/snabbswitch,kellabyte/snabbswitch,eugeneia/snabb,kbara/snabb,dpino/snabb,kbara/snabb,alexandergall/snabbswitch,wingo/snabb,dpino/snabb,lukego/snabb,alexandergall/snabbswitch,heryii/snabb,Igalia/snabbswitch,fhanik/snabbswitch,wingo/snabb,heryii/snabb,SnabbCo/snabbswitch,snabbnfv-goodies/snabbswitch,dwdm/snabbswitch,pavel-odintsov/snabbswitch,dpino/snabb,heryii/snabb,eugeneia/snabb,mixflowtech/logsensor,eugeneia/snabb,mixflowtech/logsensor,dpino/snabb,pirate/snabbswitch,dpino/snabb,alexandergall/snabbswitch,dwdm/snabbswitch,Igalia/snabb,Igalia/snabbswitch,wingo/snabbswitch,snabbco/snabb,alexandergall/snabbswitch,Igalia/snabb,alexandergall/snabbswitch,eugeneia/snabbswitch,wingo/snabbswitch,snabbco/snabb,aperezdc/snabbswitch,javierguerragiraldez/snabbswitch,pirate/snabbswitch,aperezdc/snabbswitch,Igalia/snabb,lukego/snabbswitch,mixflowtech/logsensor,dpino/snabbswitch,hb9cwp/snabbswitch,justincormack/snabbswitch,xdel/snabbswitch,pavel-odintsov/snabbswitch,Igalia/snabb,dpino/snabb,justincormack/snabbswitch,Igalia/snabb,javierguerragiraldez/snabbswitch,snabbco/snabb,wingo/snabb,pavel-odintsov/snabbswitch,alexandergall/snabbswitch,SnabbCo/snabbswitch,dpino/snabbswitch,hb9cwp/snabbswitch,wingo/snabbswitch,plajjan/snabbswitch,snabbco/snabb,eugeneia/snabb,mixflowtech/logsensor,snabbnfv-goodies/snabbswitch,xdel/snabbswitch,andywingo/snabbswitch,snabbnfv-goodies/snabbswitch,SnabbCo/snabbswitch,kbara/snabb,justincormack/snabbswitch,eugeneia/snabbswitch,eugeneia/snabb,andywingo/snabbswitch,dpino/snabbswitch,hb9cwp/snabbswitch,kellabyte/snabbswitch,SnabbCo/snabbswitch,javierguerragiraldez/snabbswitch,eugeneia/snabb,kellabyte/snabbswitch,Igalia/snabb,dpino/snabbswitch,andywingo/snabbswitch,aperezdc/snabbswitch,eugeneia/snabb,snabbco/snabb,Igalia/snabb,wingo/snabb,plajjan/snabbswitch,Igalia/snabb,virtualopensystems/snabbswitch,alexandergall/snabbswitch,eugeneia/snabb,dwdm/snabbswitch,heryii/snabb,kbara/snabb,snabbnfv-goodies/snabbswitch,alexandergall/snabbswitch,eugeneia/snabbswitch,lukego/snabbswitch,eugeneia/snabbswitch,heryii/snabb,virtualopensystems/snabbswitch,lukego/snabb