| /kernel/linux/linux-5.10/include/net/ |
| D | nexthop.h | 67 struct nexthop *nh; member 86 struct list_head fi_list; /* v4 entries using nh */ 87 struct list_head f6i_list; /* v6 entries using nh */ 88 struct list_head fdb_list; /* fdb entries using this nh */ 89 struct list_head grp_list; /* nh group entries using this nh */ 94 u8 protocol; /* app managing this nh */ 118 static inline bool nexthop_get(struct nexthop *nh) in nexthop_get() argument 120 return refcount_inc_not_zero(&nh->refcnt); in nexthop_get() 123 static inline void nexthop_put(struct nexthop *nh) in nexthop_put() argument 125 if (refcount_dec_and_test(&nh->refcnt)) in nexthop_put() [all …]
|
| /kernel/linux/linux-6.6/include/net/ |
| D | nexthop.h | 99 struct nexthop *nh; member 134 struct list_head fi_list; /* v4 entries using nh */ 135 struct list_head f6i_list; /* v6 entries using nh */ 136 struct list_head fdb_list; /* fdb entries using this nh */ 137 struct list_head grp_list; /* nh group entries using this nh */ 142 u8 protocol; /* app managing this nh */ 184 struct nh_notifier_single_info nh; member 212 struct nh_notifier_single_info *nh; member 232 static inline bool nexthop_get(struct nexthop *nh) in nexthop_get() argument 234 return refcount_inc_not_zero(&nh->refcnt); in nexthop_get() [all …]
|
| /kernel/linux/linux-6.6/kernel/ |
| D | notifier.c | 142 * @nh: Pointer to head of the atomic notifier chain 149 int atomic_notifier_chain_register(struct atomic_notifier_head *nh, in atomic_notifier_chain_register() argument 155 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_register() 156 ret = notifier_chain_register(&nh->head, n, false); in atomic_notifier_chain_register() 157 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_register() 164 * @nh: Pointer to head of the atomic notifier chain 172 int atomic_notifier_chain_register_unique_prio(struct atomic_notifier_head *nh, in atomic_notifier_chain_register_unique_prio() argument 178 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_register_unique_prio() 179 ret = notifier_chain_register(&nh->head, n, true); in atomic_notifier_chain_register_unique_prio() 180 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_register_unique_prio() [all …]
|
| /kernel/linux/linux-5.10/kernel/ |
| D | notifier.c | 132 * @nh: Pointer to head of the atomic notifier chain 139 int atomic_notifier_chain_register(struct atomic_notifier_head *nh, in atomic_notifier_chain_register() argument 145 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_register() 146 ret = notifier_chain_register(&nh->head, n); in atomic_notifier_chain_register() 147 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_register() 154 * @nh: Pointer to head of the atomic notifier chain 161 int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, in atomic_notifier_chain_unregister() argument 167 spin_lock_irqsave(&nh->lock, flags); in atomic_notifier_chain_unregister() 168 ret = notifier_chain_unregister(&nh->head, n); in atomic_notifier_chain_unregister() 169 spin_unlock_irqrestore(&nh->lock, flags); in atomic_notifier_chain_unregister() [all …]
|
| /kernel/linux/linux-5.10/net/ipv4/ |
| D | nexthop.c | 19 static void remove_nexthop(struct net *net, struct nexthop *nh, 41 struct nexthop *nh) in call_nexthop_notifiers() argument 46 event_type, nh); in call_nexthop_notifiers() 72 static void nexthop_free_mpath(struct nexthop *nh) in nexthop_free_mpath() argument 77 nhg = rcu_dereference_raw(nh->nh_grp); in nexthop_free_mpath() 82 nexthop_put(nhge->nh); in nexthop_free_mpath() 91 static void nexthop_free_single(struct nexthop *nh) in nexthop_free_single() argument 95 nhi = rcu_dereference_raw(nh->nh_info); in nexthop_free_single() 98 fib_nh_release(nh->net, &nhi->fib_nh); in nexthop_free_single() 109 struct nexthop *nh = container_of(head, struct nexthop, rcu); in nexthop_free_rcu() local [all …]
|
| D | fib_semantics.c | 68 int nhsel; const struct fib_nh *nh; \ 69 for (nhsel = 0, nh = (fi)->fib_nh; \ 71 nh++, nhsel++) 84 int nhsel; const struct fib_nh *nh = (fi)->fib_nh; \ 237 if (fi->nh) { in free_fib_info_rcu() 238 nexthop_put(fi->nh); in free_fib_info_rcu() 272 if (fi->nh) { in fib_release_info() 292 if (fi->nh || ofi->nh) in nh_comp() 293 return nexthop_cmp(fi->nh, ofi->nh) ? 0 : -1; in nh_comp() 301 if (nh->fib_nh_oif != onh->fib_nh_oif || in nh_comp() [all …]
|
| /kernel/linux/linux-6.6/net/ipv4/ |
| D | fib_semantics.c | 70 int nhsel; const struct fib_nh *nh; \ 71 for (nhsel = 0, nh = (fi)->fib_nh; \ 73 nh++, nhsel++) 86 int nhsel; const struct fib_nh *nh = (fi)->fib_nh; \ 237 if (fi->nh) { in free_fib_info_rcu() 238 nexthop_put(fi->nh); in free_fib_info_rcu() 272 if (fi->nh) { in fib_release_info() 292 if (fi->nh || ofi->nh) in nh_comp() 293 return nexthop_cmp(fi->nh, ofi->nh) ? 0 : -1; in nh_comp() 301 if (nh->fib_nh_oif != onh->fib_nh_oif || in nh_comp() [all …]
|
| D | nexthop.c | 23 static void remove_nexthop(struct net *net, struct nexthop *nh, 101 const struct nexthop *nh) in nh_notifier_single_info_init() argument 103 struct nh_info *nhi = rtnl_dereference(nh->nh_info); in nh_notifier_single_info_init() 106 info->nh = kzalloc(sizeof(*info->nh), GFP_KERNEL); in nh_notifier_single_info_init() 107 if (!info->nh) in nh_notifier_single_info_init() 110 __nh_notifier_single_info_init(info->nh, nhi); in nh_notifier_single_info_init() 117 kfree(info->nh); in nh_notifier_single_info_fini() 139 nhi = rtnl_dereference(nhge->nh->nh_info); in nh_notifier_mpath_info_init() 140 info->nh_grp->nh_entries[i].id = nhge->nh->id; in nh_notifier_mpath_info_init() 142 __nh_notifier_single_info_init(&info->nh_grp->nh_entries[i].nh, in nh_notifier_mpath_info_init() [all …]
|
| /kernel/linux/linux-5.10/tools/testing/selftests/net/mptcp/ |
| D | pm_nl_ctl.c | 39 struct nlmsghdr *nh = (void *)data; in init_genl_req() local 43 nh->nlmsg_type = family; in init_genl_req() 44 nh->nlmsg_flags = NLM_F_REQUEST; in init_genl_req() 45 nh->nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN); in init_genl_req() 46 off += NLMSG_ALIGN(sizeof(*nh)); in init_genl_req() 55 static void nl_error(struct nlmsghdr *nh) in nl_error() argument 57 struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(nh); in nl_error() 58 int len = nh->nlmsg_len - sizeof(*nh); in nl_error() 67 struct rtattr *attrs = (struct rtattr *)NLMSG_DATA(nh); in nl_error() 86 static int do_nl_req(int fd, struct nlmsghdr *nh, int len, int max) in do_nl_req() argument [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/net/ |
| D | tap.c | 33 static struct rtattr *rtattr_add(struct nlmsghdr *nh, unsigned short type, in rtattr_add() argument 37 (struct rtattr *)((uint8_t *)nh + RTA_ALIGN(nh->nlmsg_len)); in rtattr_add() 40 nh->nlmsg_len = RTA_ALIGN(nh->nlmsg_len) + RTA_ALIGN(rta->rta_len); in rtattr_add() 44 static struct rtattr *rtattr_begin(struct nlmsghdr *nh, unsigned short type) in rtattr_begin() argument 46 return rtattr_add(nh, type, 0); in rtattr_begin() 49 static void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr) in rtattr_end() argument 51 uint8_t *end = (uint8_t *)nh + nh->nlmsg_len; in rtattr_end() 56 static struct rtattr *rtattr_add_str(struct nlmsghdr *nh, unsigned short type, in rtattr_add_str() argument 59 struct rtattr *rta = rtattr_add(nh, type, strlen(s)); in rtattr_add_str() 65 static struct rtattr *rtattr_add_strsz(struct nlmsghdr *nh, unsigned short type, in rtattr_add_strsz() argument [all …]
|
| D | ipsec.c | 210 static inline struct rtattr *rtattr_hdr(struct nlmsghdr *nh) in rtattr_hdr() argument 212 return (struct rtattr *)((char *)(nh) + RTA_ALIGN((nh)->nlmsg_len)); in rtattr_hdr() 215 static int rtattr_pack(struct nlmsghdr *nh, size_t req_sz, in rtattr_pack() argument 219 struct rtattr *attr = rtattr_hdr(nh); in rtattr_pack() 220 size_t nl_size = RTA_ALIGN(nh->nlmsg_len) + RTA_LENGTH(size); in rtattr_pack() 226 nh->nlmsg_len = nl_size; in rtattr_pack() 236 static struct rtattr *_rtattr_begin(struct nlmsghdr *nh, size_t req_sz, in _rtattr_begin() argument 239 struct rtattr *ret = rtattr_hdr(nh); in _rtattr_begin() 241 if (rtattr_pack(nh, req_sz, rta_type, payload, size)) in _rtattr_begin() 247 static inline struct rtattr *rtattr_begin(struct nlmsghdr *nh, size_t req_sz, in rtattr_begin() argument [all …]
|
| /kernel/linux/linux-5.10/tools/testing/selftests/net/ |
| D | ipsec.c | 172 static inline struct rtattr *rtattr_hdr(struct nlmsghdr *nh) in rtattr_hdr() argument 174 return (struct rtattr *)((char *)(nh) + RTA_ALIGN((nh)->nlmsg_len)); in rtattr_hdr() 177 static int rtattr_pack(struct nlmsghdr *nh, size_t req_sz, in rtattr_pack() argument 181 struct rtattr *attr = rtattr_hdr(nh); in rtattr_pack() 182 size_t nl_size = RTA_ALIGN(nh->nlmsg_len) + RTA_LENGTH(size); in rtattr_pack() 188 nh->nlmsg_len = nl_size; in rtattr_pack() 197 static struct rtattr *_rtattr_begin(struct nlmsghdr *nh, size_t req_sz, in _rtattr_begin() argument 200 struct rtattr *ret = rtattr_hdr(nh); in _rtattr_begin() 202 if (rtattr_pack(nh, req_sz, rta_type, payload, size)) in _rtattr_begin() 208 static inline struct rtattr *rtattr_begin(struct nlmsghdr *nh, size_t req_sz, in rtattr_begin() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/mellanox/mlxsw/ |
| D | spectrum_router.h | 125 struct mlxsw_sp_nexthop *nh); 126 bool mlxsw_sp_nexthop_offload(struct mlxsw_sp_nexthop *nh); 127 unsigned char *mlxsw_sp_nexthop_ha(struct mlxsw_sp_nexthop *nh); 128 int mlxsw_sp_nexthop_indexes(struct mlxsw_sp_nexthop *nh, u32 *p_adj_index, 130 struct mlxsw_sp_rif *mlxsw_sp_nexthop_rif(struct mlxsw_sp_nexthop *nh); 131 bool mlxsw_sp_nexthop_group_has_ipip(struct mlxsw_sp_nexthop *nh); 132 #define mlxsw_sp_nexthop_for_each(nh, router) \ argument 133 for (nh = mlxsw_sp_nexthop_next(router, NULL); nh; \ 134 nh = mlxsw_sp_nexthop_next(router, nh)) 136 struct mlxsw_sp_nexthop *nh, u64 *p_counter); [all …]
|
| /kernel/linux/linux-5.10/net/openvswitch/ |
| D | actions.c | 312 const struct nshhdr *nh) in push_nsh() argument 316 err = nsh_push(skb, nh); in push_nsh() 343 static void update_ip_l4_checksum(struct sk_buff *skb, struct iphdr *nh, in update_ip_l4_checksum() argument 348 if (nh->frag_off & htons(IP_OFFSET)) in update_ip_l4_checksum() 351 if (nh->protocol == IPPROTO_TCP) { in update_ip_l4_checksum() 355 } else if (nh->protocol == IPPROTO_UDP) { in update_ip_l4_checksum() 369 static void set_ip_addr(struct sk_buff *skb, struct iphdr *nh, in set_ip_addr() argument 372 update_ip_l4_checksum(skb, nh, *addr, new_addr); in set_ip_addr() 373 csum_replace4(&nh->check, *addr, new_addr); in set_ip_addr() 427 static void set_ipv6_dsfield(struct sk_buff *skb, struct ipv6hdr *nh, u8 ipv6_tclass, u8 mask) in set_ipv6_dsfield() argument [all …]
|
| /kernel/linux/linux-6.6/net/openvswitch/ |
| D | actions.c | 315 const struct nshhdr *nh) in push_nsh() argument 319 err = nsh_push(skb, nh); in push_nsh() 346 static void update_ip_l4_checksum(struct sk_buff *skb, struct iphdr *nh, in update_ip_l4_checksum() argument 351 if (nh->frag_off & htons(IP_OFFSET)) in update_ip_l4_checksum() 354 if (nh->protocol == IPPROTO_TCP) { in update_ip_l4_checksum() 358 } else if (nh->protocol == IPPROTO_UDP) { in update_ip_l4_checksum() 372 static void set_ip_addr(struct sk_buff *skb, struct iphdr *nh, in set_ip_addr() argument 375 update_ip_l4_checksum(skb, nh, *addr, new_addr); in set_ip_addr() 376 csum_replace4(&nh->check, *addr, new_addr); in set_ip_addr() 430 static void set_ipv6_dsfield(struct sk_buff *skb, struct ipv6hdr *nh, u8 ipv6_tclass, u8 mask) in set_ipv6_dsfield() argument [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/bpf/prog_tests/ |
| D | xfrm_info.c | 171 static struct rtattr *rtattr_add(struct nlmsghdr *nh, unsigned short type, in rtattr_add() argument 175 (struct rtattr *)((uint8_t *)nh + RTA_ALIGN(nh->nlmsg_len)); in rtattr_add() 178 nh->nlmsg_len = RTA_ALIGN(nh->nlmsg_len) + RTA_ALIGN(rta->rta_len); in rtattr_add() 182 static struct rtattr *rtattr_add_str(struct nlmsghdr *nh, unsigned short type, in rtattr_add_str() argument 185 struct rtattr *rta = rtattr_add(nh, type, strlen(s)); in rtattr_add_str() 191 static struct rtattr *rtattr_begin(struct nlmsghdr *nh, unsigned short type) in rtattr_begin() argument 193 return rtattr_add(nh, type, 0); in rtattr_begin() 196 static void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr) in rtattr_end() argument 198 uint8_t *end = (uint8_t *)nh + nh->nlmsg_len; in rtattr_end() 206 struct nlmsghdr nh; in setup_xfrmi_external_dev() member [all …]
|
| /kernel/linux/linux-6.6/tools/lib/bpf/ |
| D | netlink.c | 143 struct nlmsghdr *nh; in libbpf_netlink_recv() local 174 for (nh = (struct nlmsghdr *)iov.iov_base; NLMSG_OK(nh, len); in libbpf_netlink_recv() 175 nh = NLMSG_NEXT(nh, len)) { in libbpf_netlink_recv() 176 if (nh->nlmsg_pid != nl_pid) { in libbpf_netlink_recv() 180 if (nh->nlmsg_seq != seq) { in libbpf_netlink_recv() 184 if (nh->nlmsg_flags & NLM_F_MULTI) in libbpf_netlink_recv() 186 switch (nh->nlmsg_type) { in libbpf_netlink_recv() 188 err = (struct nlmsgerr *)NLMSG_DATA(nh); in libbpf_netlink_recv() 192 libbpf_nla_dump_errormsg(nh); in libbpf_netlink_recv() 201 ret = _fn(nh, fn, cookie); in libbpf_netlink_recv() [all …]
|
| /kernel/linux/linux-6.6/arch/alpha/boot/ |
| D | Makefile | 13 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \ 21 $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh 22 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@ 27 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh 28 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@ 35 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz 36 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@ 50 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE 51 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T 59 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE [all …]
|
| /kernel/linux/linux-5.10/arch/alpha/boot/ |
| D | Makefile | 13 vmlinux.nh tools/lxboot tools/bootlx tools/bootph \ 21 $(obj)/bootimage: $(addprefix $(obj)/tools/,mkbb lxboot bootlx) $(obj)/vmlinux.nh 22 ( cat $(obj)/tools/lxboot $(obj)/tools/bootlx $(obj)/vmlinux.nh ) > $@ 27 $(obj)/bootpfile: $(obj)/tools/bootph $(obj)/vmlinux.nh 28 cat $(obj)/tools/bootph $(obj)/vmlinux.nh > $@ 35 $(obj)/bootpzfile: $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz 36 cat $(obj)/tools/bootpzh $(obj)/vmlinux.nh.gz > $@ 50 $(obj)/ksize.h: $(obj)/vmlinux.nh FORCE 51 echo "#define KERNEL_SIZE `ls -l $(obj)/vmlinux.nh | awk '{print $$5}'`" > $@T 59 $(obj)/kzsize.h: $(obj)/vmlinux.nh.gz FORCE [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/mellanox/mlxsw/ |
| D | spectrum_router.h | 144 struct mlxsw_sp_nexthop *nh); 145 bool mlxsw_sp_nexthop_is_forward(const struct mlxsw_sp_nexthop *nh); 146 unsigned char *mlxsw_sp_nexthop_ha(struct mlxsw_sp_nexthop *nh); 147 int mlxsw_sp_nexthop_indexes(struct mlxsw_sp_nexthop *nh, u32 *p_adj_index, 149 struct mlxsw_sp_rif *mlxsw_sp_nexthop_rif(struct mlxsw_sp_nexthop *nh); 150 bool mlxsw_sp_nexthop_group_has_ipip(struct mlxsw_sp_nexthop *nh); 151 #define mlxsw_sp_nexthop_for_each(nh, router) \ argument 152 for (nh = mlxsw_sp_nexthop_next(router, NULL); nh; \ 153 nh = mlxsw_sp_nexthop_next(router, nh)) 155 struct mlxsw_sp_nexthop *nh, u64 *p_counter); [all …]
|
| /kernel/linux/linux-6.6/tools/testing/selftests/net/mptcp/ |
| D | pm_nl_ctl.c | 53 struct nlmsghdr *nh = (void *)data; in init_genl_req() local 57 nh->nlmsg_type = family; in init_genl_req() 58 nh->nlmsg_flags = NLM_F_REQUEST; in init_genl_req() 59 nh->nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN); in init_genl_req() 60 off += NLMSG_ALIGN(sizeof(*nh)); in init_genl_req() 69 static int nl_error(struct nlmsghdr *nh) in nl_error() argument 71 struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(nh); in nl_error() 72 int len = nh->nlmsg_len - sizeof(*nh); in nl_error() 83 struct rtattr *attrs = (struct rtattr *)NLMSG_DATA(nh); in nl_error() 111 struct nlmsghdr *nh; in capture_events() local [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | notifier.h | 94 extern void srcu_init_notifier_head(struct srcu_notifier_head *nh); 146 extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, 148 extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh, 150 extern int raw_notifier_chain_register(struct raw_notifier_head *nh, 152 extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh, 156 struct atomic_notifier_head *nh, struct notifier_block *nb); 158 struct blocking_notifier_head *nh, struct notifier_block *nb); 160 extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, 162 extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, 164 extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh, [all …]
|
| /kernel/linux/linux-5.10/tools/lib/bpf/ |
| D | netlink.c | 82 struct nlmsghdr *nh; in bpf_netlink_recv() local 97 for (nh = (struct nlmsghdr *)buf; NLMSG_OK(nh, len); in bpf_netlink_recv() 98 nh = NLMSG_NEXT(nh, len)) { in bpf_netlink_recv() 99 if (nh->nlmsg_pid != nl_pid) { in bpf_netlink_recv() 103 if (nh->nlmsg_seq != seq) { in bpf_netlink_recv() 107 if (nh->nlmsg_flags & NLM_F_MULTI) in bpf_netlink_recv() 109 switch (nh->nlmsg_type) { in bpf_netlink_recv() 111 err = (struct nlmsgerr *)NLMSG_DATA(nh); in bpf_netlink_recv() 115 libbpf_nla_dump_errormsg(nh); in bpf_netlink_recv() 123 ret = _fn(nh, fn, cookie); in bpf_netlink_recv() [all …]
|
| /kernel/linux/linux-5.10/net/ipv6/ |
| D | route.c | 105 static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, 419 if (!match->nh && (!match->fib6_nsiblings || have_oif_match)) in fib6_select_path() 422 if (match->nh && have_oif_match && res->nh) in fib6_select_path() 429 (!match->nh || nexthop_is_multipath(match->nh))) in fib6_select_path() 432 if (unlikely(match->nh)) { in fib6_select_path() 442 const struct fib6_nh *nh = sibling->fib6_nh; in fib6_select_path() local 445 nh_upper_bound = atomic_read(&nh->fib_nh_upper_bound); in fib6_select_path() 448 if (rt6_score_route(nh, sibling->fib6_flags, oif, strict) < 0) in fib6_select_path() 456 res->nh = match->fib6_nh; in fib6_select_path() 463 static bool __rt6_device_match(struct net *net, const struct fib6_nh *nh, in __rt6_device_match() argument [all …]
|
| /kernel/linux/linux-6.6/net/ipv6/ |
| D | route.c | 107 static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, 424 if (!match->nh && (!match->fib6_nsiblings || have_oif_match)) in fib6_select_path() 427 if (match->nh && have_oif_match && res->nh) in fib6_select_path() 437 (!match->nh || nexthop_is_multipath(match->nh))) in fib6_select_path() 440 if (unlikely(match->nh)) { in fib6_select_path() 450 const struct fib6_nh *nh = sibling->fib6_nh; in fib6_select_path() local 453 nh_upper_bound = atomic_read(&nh->fib_nh_upper_bound); in fib6_select_path() 456 if (rt6_score_route(nh, sibling->fib6_flags, oif, strict) < 0) in fib6_select_path() 464 res->nh = match->fib6_nh; in fib6_select_path() 471 static bool __rt6_device_match(struct net *net, const struct fib6_nh *nh, in __rt6_device_match() argument [all …]
|