net: Introduce ife encapsulation module

This module is responsible for the ife encapsulation protocol
encode/decode logics. That module can:
 - ife_encode: encode skb and reserve space for the ife meta header
 - ife_decode: decode skb and extract the meta header size
 - ife_tlv_meta_encode - encodes one tlv entry into the reserved ife
   header space.
 - ife_tlv_meta_decode - decodes one tlv entry from the packet
 - ife_tlv_meta_next - advance to the next tlv

Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Yotam Gigi <yotamg@mellanox.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Yotam Gigi 2017-02-01 15:30:02 +02:00 committed by David S. Miller
parent 1d5e7c859e
commit 1ce8460496
9 changed files with 242 additions and 0 deletions

18
include/uapi/linux/ife.h Normal file
View file

@ -0,0 +1,18 @@
#ifndef __UAPI_IFE_H
#define __UAPI_IFE_H
#define IFE_METAHDRLEN 2
enum {
IFE_META_SKBMARK = 1,
IFE_META_HASHID,
IFE_META_PRIO,
IFE_META_QMAP,
IFE_META_TCINDEX,
__IFE_META_MAX
};
/*Can be overridden at runtime by module option*/
#define IFE_META_MAX (__IFE_META_MAX - 1)
#endif