1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __NET_IFE_H |
3 | #define __NET_IFE_H |
4 | |
5 | #include <linux/etherdevice.h> |
6 | #include <linux/rtnetlink.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, const void *ifehdr_end, u16 *attrtype, |
15 | u16 *dlen, u16 *totlen); |
16 | int ife_tlv_meta_encode(void *skbdata, u16 attrtype, u16 dlen, |
17 | const void *dval); |
18 | |
19 | void *ife_tlv_meta_next(void *skbdata); |
20 | |
21 | #else |
22 | |
23 | static inline void *ife_encode(struct sk_buff *skb, u16 metalen) |
24 | { |
25 | return NULL; |
26 | } |
27 | |
28 | static inline void *ife_decode(struct sk_buff *skb, u16 *metalen) |
29 | { |
30 | return NULL; |
31 | } |
32 | |
33 | static inline void *ife_tlv_meta_decode(void *skbdata, u16 *attrtype, u16 *dlen, |
34 | u16 *totlen) |
35 | { |
36 | return NULL; |
37 | } |
38 | |
39 | static inline int ife_tlv_meta_encode(void *skbdata, u16 attrtype, u16 dlen, |
40 | const void *dval) |
41 | { |
42 | return 0; |
43 | } |
44 | |
45 | static inline void *ife_tlv_meta_next(void *skbdata) |
46 | { |
47 | return NULL; |
48 | } |
49 | |
50 | #endif |
51 | |
52 | #endif /* __NET_IFE_H */ |
53 | |