add support for vnetflowid.
authordlg <dlg@openbsd.org>
Tue, 20 Feb 2018 03:53:54 +0000 (03:53 +0000)
committerdlg <dlg@openbsd.org>
Tue, 20 Feb 2018 03:53:54 +0000 (03:53 +0000)
commit1bd3c6d4c351cf36048dd6c637dbc48b3757e8c1
treecd49f127988c9fe5201479649fbd009988e8c081
parent9736dd937c272c885910612a0f5406df86543ab9
add support for vnetflowid.

when enabled, the 32bit key on gre a packet is split into a 24bit
key and an 8 bit flow id. this allows better use of multipath links
if the intermediate routers feed the gre key into their hashing
algorithms. because gre can encapsulate pretty much anything, it
can be non-trivial for a router to reach into a payload to harvest
entropy for feeding into a hashing algorithm. having the endpoints
do it and feed it into the gre header is a lot simpler.

this allows interoperationg with cisco gre tunnels with key entropy
enabled. this was tested against a csr1000v.

also, this arrangement coincides with how nvgre works, so it paves
the way for supporting that protocol.

right now the driver relies on the flowid in mbufs to populate the
packet field. this generally means that pf should be enabled to
provide the flowid.
sys/net/if_gre.c