xref: /openbmc/linux/include/net/ife.h (revision 239480ab)
1 #ifndef __NET_IFE_H
2 #define __NET_IFE_H
3 
4 #include <linux/etherdevice.h>
5 #include <linux/rtnetlink.h>
6 #include <linux/module.h>
7 #include <uapi/linux/ife.h>
8 
9 #if IS_ENABLED(CONFIG_NET_IFE)
10 
11 void *ife_encode(struct sk_buff *skb, u16 metalen);
12 void *ife_decode(struct sk_buff *skb, u16 *metalen);
13 
14 void *ife_tlv_meta_decode(void *skbdata, u16 *attrtype, u16 *dlen, u16 *totlen);
15 int ife_tlv_meta_encode(void *skbdata, u16 attrtype, u16 dlen,
16 			const void *dval);
17 
18 void *ife_tlv_meta_next(void *skbdata);
19 
20 #else
21 
22 static inline void *ife_encode(struct sk_buff *skb, u16 metalen)
23 {
24 	return NULL;
25 }
26 
27 static inline void *ife_decode(struct sk_buff *skb, u16 *metalen)
28 {
29 	return NULL;
30 }
31 
32 static inline void *ife_tlv_meta_decode(void *skbdata, u16 *attrtype, u16 *dlen,
33 					u16 *totlen)
34 {
35 	return NULL;
36 }
37 
38 static inline int ife_tlv_meta_encode(void *skbdata, u16 attrtype, u16 dlen,
39 			const void *dval)
40 {
41 	return 0;
42 }
43 
44 static inline void *ife_tlv_meta_next(void *skbdata)
45 {
46 	return NULL;
47 }
48 
49 #endif
50 
51 #endif /* __NET_IFE_H */
52