| /linux/net/6lowpan/ |
| H A D | nhc.c | 20 const struct lowpan_nhc *nhc; in lowpan_nhc_by_nhcid() local 30 nhc = lowpan_nexthdr_nhcs[i]; in lowpan_nhc_by_nhcid() 31 if (!nhc) in lowpan_nhc_by_nhcid() 34 if ((id & nhc->idmask) == nhc->id) in lowpan_nhc_by_nhcid() 35 return nhc; in lowpan_nhc_by_nhcid() 44 const struct lowpan_nhc *nhc; in lowpan_nhc_check_compression() local 49 nhc = lowpan_nexthdr_nhcs[hdr->nexthdr]; in lowpan_nhc_check_compression() 50 if (!(nhc && nhc->compress)) in lowpan_nhc_check_compression() 62 const struct lowpan_nhc *nhc; in lowpan_nhc_do_compression() local 66 nhc = lowpan_nexthdr_nhcs[hdr->nexthdr]; in lowpan_nhc_do_compression() [all …]
|
| H A D | nhc.h | 119 int lowpan_nhc_add(const struct lowpan_nhc *nhc); 126 void lowpan_nhc_del(const struct lowpan_nhc *nhc);
|
| H A D | Makefile | 4 6lowpan-y := core.o iphc.o nhc.o ndisc.o
|
| /linux/net/ipv4/ |
| H A D | fib_semantics.c | 155 static void free_nh_exceptions(struct fib_nh_common *nhc) in free_nh_exceptions() argument 160 hash = rcu_dereference_protected(nhc->nhc_exceptions, 1); in free_nh_exceptions() 202 void fib_nh_common_release(struct fib_nh_common *nhc) in fib_nh_common_release() argument 204 netdev_put(nhc->nhc_dev, &nhc->nhc_dev_tracker); in fib_nh_common_release() 205 lwtstate_put(nhc->nhc_lwtstate); in fib_nh_common_release() 206 rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output); in fib_nh_common_release() 207 rt_fibinfo_free(&nhc->nhc_rth_input); in fib_nh_common_release() 208 free_nh_exceptions(nhc); in fib_nh_common_release() 524 struct fib_nh_common *nhc = fib_info_nhc(fi, i); in fib_nlmsg_size() local 526 if (nhc->nhc_lwtstate) { in fib_nlmsg_size() [all …]
|
| H A D | route.c | 644 static void update_or_create_fnhe(struct fib_nh_common *nhc, __be32 daddr, in update_or_create_fnhe() argument 655 genid = fnhe_genid(dev_net(nhc->nhc_dev)); in update_or_create_fnhe() 660 hash = rcu_dereference(nhc->nhc_exceptions); in update_or_create_fnhe() 665 rcu_assign_pointer(nhc->nhc_exceptions, hash); in update_or_create_fnhe() 724 rt = rcu_dereference(nhc->nhc_rth_input); in update_or_create_fnhe() 731 prt = per_cpu_ptr(nhc->nhc_pcpu_rth_output, i); in update_or_create_fnhe() 797 struct fib_nh_common *nhc; in __ip_do_redirect() local 800 nhc = FIB_RES_NHC(res); in __ip_do_redirect() 801 update_or_create_fnhe(nhc, fl4->daddr, new_gw, in __ip_do_redirect() 1047 struct fib_nh_common *nhc; in __ip_rt_update_pmtu() local [all …]
|
| H A D | fib_trie.c | 1402 bool fib_lookup_good_nhc(const struct fib_nh_common *nhc, int fib_flags, in fib_lookup_good_nhc() argument 1405 if (nhc->nhc_flags & RTNH_F_DEAD) in fib_lookup_good_nhc() 1408 if (ip_ignore_linkdown(nhc->nhc_dev) && in fib_lookup_good_nhc() 1409 nhc->nhc_flags & RTNH_F_LINKDOWN && in fib_lookup_good_nhc() 1413 if (flp->flowi4_oif && flp->flowi4_oif != nhc->nhc_oif) in fib_lookup_good_nhc() 1551 struct fib_nh_common *nhc; in fib_table_lookup() local 1584 nhc = nexthop_get_nhc_lookup(fi->nh, fib_flags, flp, in fib_table_lookup() 1586 if (nhc) in fib_table_lookup() 1592 nhc = fib_info_nhc(fi, nhsel); in fib_table_lookup() 1594 if (!fib_lookup_good_nhc(nhc, fib_flags, flp)) in fib_table_lookup() [all …]
|
| H A D | fib_lookup.h | 53 res->nhc = fib_info_nhc(fi, 0); in fib_result_assign()
|
| /linux/drivers/net/ethernet/marvell/prestera/ |
| H A D | prestera_router.c | 107 struct fib_nh_common *nhc, in prestera_util_nhc2nc_key() argument 111 if (nhc->nhc_gw_family == AF_INET) { in prestera_util_nhc2nc_key() 113 nk->addr.u.ipv4 = nhc->nhc_gw.ipv4; in prestera_util_nhc2nc_key() 116 nk->addr.u.ipv6 = nhc->nhc_gw.ipv6; in prestera_util_nhc2nc_key() 119 nk->dev = nhc->nhc_dev; in prestera_util_nhc2nc_key() 134 struct fib_nh_common *nhc, in prestera_util_nhc_eq_n_cache_key() argument 140 err = prestera_util_nhc2nc_key(sw, nhc, &tk); in prestera_util_nhc_eq_n_cache_key() 304 prestera_util_kern_set_nh_offload(struct fib_nh_common *nhc, bool offloaded, bool trap) in prestera_util_kern_set_nh_offload() argument 307 nhc->nhc_flags |= RTNH_F_OFFLOAD; in prestera_util_kern_set_nh_offload() 309 nhc->nhc_flags &= ~RTNH_F_OFFLOAD; in prestera_util_kern_set_nh_offload() [all …]
|
| /linux/include/net/ |
| H A D | vxlan.h | 568 struct fib_nh_common *nhc; in vxlan_fdb_nh_path_select() local 570 nhc = nexthop_path_fdb_result(nh, hash >> 1); in vxlan_fdb_nh_path_select() 571 if (unlikely(!nhc)) in vxlan_fdb_nh_path_select() 574 switch (nhc->nhc_gw_family) { in vxlan_fdb_nh_path_select() 576 rdst->remote_ip.sin.sin_addr.s_addr = nhc->nhc_gw.ipv4; in vxlan_fdb_nh_path_select() 580 rdst->remote_ip.sin6.sin6_addr = nhc->nhc_gw.ipv6; in vxlan_fdb_nh_path_select()
|
| H A D | nexthop.h | 357 struct fib_nh_common *nhc = &nhi->fib_nhc; in nexthop_mpath_fill_node() 360 if (fib_add_nexthop(skb, nhc, weight, rt_family, 0) < 0) in nexthop_mpath_fill_node() 393 res->nhc = &nhi->fib_nhc; 355 struct fib_nh_common *nhc = &nhi->fib_nhc; nexthop_mpath_fill_node() local
|
| /linux/net/core/ |
| H A D | filter.c | 6092 struct fib_nh_common *nhc; in bpf_ipv4_fib_lookup() local 6181 nhc = res.nhc; in bpf_ipv4_fib_lookup() 6184 if (nhc->nhc_lwtstate) in bpf_ipv4_fib_lookup() 6187 dev = nhc->nhc_dev; in bpf_ipv4_fib_lookup() 6198 if (likely(nhc->nhc_gw_family != AF_INET6)) { in bpf_ipv4_fib_lookup() 6199 if (nhc->nhc_gw_family) in bpf_ipv4_fib_lookup() 6200 params->ipv4_dst = nhc->nhc_gw.ipv4; in bpf_ipv4_fib_lookup() 6205 *dst = nhc->nhc_gw.ipv6; in bpf_ipv4_fib_lookup() 6211 if (likely(nhc->nhc_gw_family != AF_INET6)) in bpf_ipv4_fib_lookup()
|