forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4
kernel/include/net/lwtunnel.h
....@@ -30,11 +30,11 @@
3030 int (*orig_output)(struct net *net, struct sock *sk, struct sk_buff *skb);
3131 int (*orig_input)(struct sk_buff *);
3232 struct rcu_head rcu;
33
- __u8 data[0];
33
+ __u8 data[];
3434 };
3535
3636 struct lwtunnel_encap_ops {
37
- int (*build_state)(struct nlattr *encap,
37
+ int (*build_state)(struct net *net, struct nlattr *encap,
3838 unsigned int family, const void *cfg,
3939 struct lwtunnel_state **ts,
4040 struct netlink_ext_ack *extack);
....@@ -113,19 +113,21 @@
113113 struct netlink_ext_ack *extack);
114114 int lwtunnel_valid_encap_type_attr(struct nlattr *attr, int len,
115115 struct netlink_ext_ack *extack);
116
-int lwtunnel_build_state(u16 encap_type,
116
+int lwtunnel_build_state(struct net *net, u16 encap_type,
117117 struct nlattr *encap,
118118 unsigned int family, const void *cfg,
119119 struct lwtunnel_state **lws,
120120 struct netlink_ext_ack *extack);
121
-int lwtunnel_fill_encap(struct sk_buff *skb,
122
- struct lwtunnel_state *lwtstate);
121
+int lwtunnel_fill_encap(struct sk_buff *skb, struct lwtunnel_state *lwtstate,
122
+ int encap_attr, int encap_type_attr);
123123 int lwtunnel_get_encap_size(struct lwtunnel_state *lwtstate);
124124 struct lwtunnel_state *lwtunnel_state_alloc(int hdr_len);
125125 int lwtunnel_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b);
126126 int lwtunnel_output(struct net *net, struct sock *sk, struct sk_buff *skb);
127127 int lwtunnel_input(struct sk_buff *skb);
128128 int lwtunnel_xmit(struct sk_buff *skb);
129
+int bpf_lwt_push_ip_encap(struct sk_buff *skb, void *hdr, u32 len,
130
+ bool ingress);
129131
130132 static inline void lwtunnel_set_redirect(struct dst_entry *dst)
131133 {
....@@ -207,7 +209,7 @@
207209 return 0;
208210 }
209211
210
-static inline int lwtunnel_build_state(u16 encap_type,
212
+static inline int lwtunnel_build_state(struct net *net, u16 encap_type,
211213 struct nlattr *encap,
212214 unsigned int family, const void *cfg,
213215 struct lwtunnel_state **lws,
....@@ -217,7 +219,8 @@
217219 }
218220
219221 static inline int lwtunnel_fill_encap(struct sk_buff *skb,
220
- struct lwtunnel_state *lwtstate)
222
+ struct lwtunnel_state *lwtstate,
223
+ int encap_attr, int encap_type_attr)
221224 {
222225 return 0;
223226 }