hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/mroute_base.h
....@@ -7,6 +7,7 @@
77 #include <net/net_namespace.h>
88 #include <net/sock.h>
99 #include <net/fib_notifier.h>
10
+#include <net/ip_fib.h>
1011
1112 /**
1213 * struct vif_device - interface representor for multicast routing
....@@ -46,16 +47,16 @@
4647 };
4748
4849 static inline int mr_call_vif_notifier(struct notifier_block *nb,
49
- struct net *net,
5050 unsigned short family,
5151 enum fib_event_type event_type,
5252 struct vif_device *vif,
53
- unsigned short vif_index, u32 tb_id)
53
+ unsigned short vif_index, u32 tb_id,
54
+ struct netlink_ext_ack *extack)
5455 {
5556 struct vif_entry_notifier_info info = {
5657 .info = {
5758 .family = family,
58
- .net = net,
59
+ .extack = extack,
5960 },
6061 .dev = vif->dev,
6162 .vif_index = vif_index,
....@@ -63,7 +64,7 @@
6364 .tb_id = tb_id,
6465 };
6566
66
- return call_fib_notifier(nb, net, event_type, &info.info);
67
+ return call_fib_notifier(nb, event_type, &info.info);
6768 }
6869
6970 static inline int mr_call_vif_notifiers(struct net *net,
....@@ -76,7 +77,6 @@
7677 struct vif_entry_notifier_info info = {
7778 .info = {
7879 .family = family,
79
- .net = net,
8080 },
8181 .dev = vif->dev,
8282 .vif_index = vif_index,
....@@ -172,21 +172,21 @@
172172 };
173173
174174 static inline int mr_call_mfc_notifier(struct notifier_block *nb,
175
- struct net *net,
176175 unsigned short family,
177176 enum fib_event_type event_type,
178
- struct mr_mfc *mfc, u32 tb_id)
177
+ struct mr_mfc *mfc, u32 tb_id,
178
+ struct netlink_ext_ack *extack)
179179 {
180180 struct mfc_entry_notifier_info info = {
181181 .info = {
182182 .family = family,
183
- .net = net,
183
+ .extack = extack,
184184 },
185185 .mfc = mfc,
186186 .tb_id = tb_id
187187 };
188188
189
- return call_fib_notifier(nb, net, event_type, &info.info);
189
+ return call_fib_notifier(nb, event_type, &info.info);
190190 }
191191
192192 static inline int mr_call_mfc_notifiers(struct net *net,
....@@ -198,7 +198,6 @@
198198 struct mfc_entry_notifier_info info = {
199199 .info = {
200200 .family = family,
201
- .net = net,
202201 },
203202 .mfc = mfc,
204203 .tb_id = tb_id
....@@ -283,6 +282,12 @@
283282
284283 int mr_fill_mroute(struct mr_table *mrt, struct sk_buff *skb,
285284 struct mr_mfc *c, struct rtmsg *rtm);
285
+int mr_table_dump(struct mr_table *mrt, struct sk_buff *skb,
286
+ struct netlink_callback *cb,
287
+ int (*fill)(struct mr_table *mrt, struct sk_buff *skb,
288
+ u32 portid, u32 seq, struct mr_mfc *c,
289
+ int cmd, int flags),
290
+ spinlock_t *lock, struct fib_dump_filter *filter);
286291 int mr_rtm_dumproute(struct sk_buff *skb, struct netlink_callback *cb,
287292 struct mr_table *(*iter)(struct net *net,
288293 struct mr_table *mrt),
....@@ -290,14 +295,15 @@
290295 struct sk_buff *skb,
291296 u32 portid, u32 seq, struct mr_mfc *c,
292297 int cmd, int flags),
293
- spinlock_t *lock);
298
+ spinlock_t *lock, struct fib_dump_filter *filter);
294299
295300 int mr_dump(struct net *net, struct notifier_block *nb, unsigned short family,
296301 int (*rules_dump)(struct net *net,
297
- struct notifier_block *nb),
302
+ struct notifier_block *nb,
303
+ struct netlink_ext_ack *extack),
298304 struct mr_table *(*mr_iter)(struct net *net,
299305 struct mr_table *mrt),
300
- rwlock_t *mrt_lock);
306
+ rwlock_t *mrt_lock, struct netlink_ext_ack *extack);
301307 #else
302308 static inline void vif_device_init(struct vif_device *v,
303309 struct net_device *dev,
....@@ -340,7 +346,7 @@
340346 struct sk_buff *skb,
341347 u32 portid, u32 seq, struct mr_mfc *c,
342348 int cmd, int flags),
343
- spinlock_t *lock)
349
+ spinlock_t *lock, struct fib_dump_filter *filter)
344350 {
345351 return -EINVAL;
346352 }
....@@ -348,10 +354,11 @@
348354 static inline int mr_dump(struct net *net, struct notifier_block *nb,
349355 unsigned short family,
350356 int (*rules_dump)(struct net *net,
351
- struct notifier_block *nb),
357
+ struct notifier_block *nb,
358
+ struct netlink_ext_ack *extack),
352359 struct mr_table *(*mr_iter)(struct net *net,
353360 struct mr_table *mrt),
354
- rwlock_t *mrt_lock)
361
+ rwlock_t *mrt_lock, struct netlink_ext_ack *extack)
355362 {
356363 return -EINVAL;
357364 }