nhc               172 include/net/ip_fib.h 	struct fib_nh_common	*nhc;
nhc               199 include/net/ip_fib.h __be32 fib_info_update_nhc_saddr(struct net *net, struct fib_nh_common *nhc,
nhc               203 include/net/ip_fib.h #define FIB_RES_NHC(res)		((res).nhc)
nhc               425 include/net/ip_fib.h static inline bool nhc_l3mdev_matches_dev(const struct fib_nh_common *nhc,
nhc               428 include/net/ip_fib.h 	if (nhc->nhc_dev == dev ||
nhc               429 include/net/ip_fib.h 	    l3mdev_master_ifindex_rcu(nhc->nhc_dev) == dev->ifindex)
nhc               441 include/net/ip_fib.h void fib_nhc_update_mtu(struct fib_nh_common *nhc, u32 new, u32 orig);
nhc               457 include/net/ip_fib.h int fib_nh_common_init(struct fib_nh_common *nhc, struct nlattr *fc_encap,
nhc               460 include/net/ip_fib.h void fib_nh_common_release(struct fib_nh_common *nhc);
nhc               469 include/net/ip_fib.h 	struct fib_nh_common *nhc = res->nhc;
nhc               473 include/net/ip_fib.h 	if (nhc->nhc_family == AF_INET) {
nhc               476 include/net/ip_fib.h 		nh = container_of(nhc, struct fib_nh, nh_common);
nhc               173 include/net/nexthop.h 		struct fib_nh_common *nhc = &nhi->fib_nhc;
nhc               176 include/net/nexthop.h 		if (fib_add_nexthop(skb, nhc, weight, rt_family) < 0)
nhc               209 include/net/nexthop.h 	res->nhc = &nhi->fib_nhc;
nhc                16 include/trace/events/fib.h 		 const struct fib_nh_common *nhc, int err),
nhc                18 include/trace/events/fib.h 	TP_ARGS(tb_id, flp, nhc, err),
nhc                68 include/trace/events/fib.h 		dev = nhc ? nhc->nhc_dev : NULL;
nhc                71 include/trace/events/fib.h 		if (nhc) {
nhc                72 include/trace/events/fib.h 			if (nhc->nhc_gw_family == AF_INET) {
nhc                74 include/trace/events/fib.h 				*p32 = nhc->nhc_gw.ipv4;
nhc                78 include/trace/events/fib.h 			} else if (nhc->nhc_gw_family == AF_INET6) {
nhc                83 include/trace/events/fib.h 				*in6 = nhc->nhc_gw.ipv6;
nhc                19 net/6lowpan/nhc.c static int lowpan_nhc_insert(struct lowpan_nhc *nhc)
nhc                29 net/6lowpan/nhc.c 		len_dif = nhc->idlen - this->idlen;
nhc                31 net/6lowpan/nhc.c 		if (nhc->idlen < this->idlen)
nhc                32 net/6lowpan/nhc.c 			len = nhc->idlen;
nhc                36 net/6lowpan/nhc.c 		result = memcmp(nhc->id, this->id, len);
nhc                50 net/6lowpan/nhc.c 	rb_link_node(&nhc->node, parent, new);
nhc                51 net/6lowpan/nhc.c 	rb_insert_color(&nhc->node, &rb_root);
nhc                56 net/6lowpan/nhc.c static void lowpan_nhc_remove(struct lowpan_nhc *nhc)
nhc                58 net/6lowpan/nhc.c 	rb_erase(&nhc->node, &rb_root);
nhc                67 net/6lowpan/nhc.c 		struct lowpan_nhc *nhc = rb_entry(node, struct lowpan_nhc,
nhc                72 net/6lowpan/nhc.c 		if (nhcid_skb_ptr + nhc->idlen > skb->data + skb->len)
nhc                76 net/6lowpan/nhc.c 		memcpy(nhcid_skb_ptr_masked, nhcid_skb_ptr, nhc->idlen);
nhc                77 net/6lowpan/nhc.c 		for (i = 0; i < nhc->idlen; i++)
nhc                78 net/6lowpan/nhc.c 			nhcid_skb_ptr_masked[i] &= nhc->idmask[i];
nhc                80 net/6lowpan/nhc.c 		result = memcmp(nhcid_skb_ptr_masked, nhc->id, nhc->idlen);
nhc                86 net/6lowpan/nhc.c 			return nhc;
nhc                95 net/6lowpan/nhc.c 	struct lowpan_nhc *nhc;
nhc               100 net/6lowpan/nhc.c 	nhc = lowpan_nexthdr_nhcs[hdr->nexthdr];
nhc               101 net/6lowpan/nhc.c 	if (!(nhc && nhc->compress))
nhc               113 net/6lowpan/nhc.c 	struct lowpan_nhc *nhc;
nhc               117 net/6lowpan/nhc.c 	nhc = lowpan_nexthdr_nhcs[hdr->nexthdr];
nhc               128 net/6lowpan/nhc.c 	if (unlikely(!nhc || !nhc->compress)) {
nhc               139 net/6lowpan/nhc.c 	ret = nhc->compress(skb, hc_ptr);
nhc               144 net/6lowpan/nhc.c 	skb_pull(skb, nhc->nexthdrlen);
nhc               156 net/6lowpan/nhc.c 	struct lowpan_nhc *nhc;
nhc               161 net/6lowpan/nhc.c 	nhc = lowpan_nhc_by_nhcid(skb);
nhc               162 net/6lowpan/nhc.c 	if (nhc) {
nhc               163 net/6lowpan/nhc.c 		if (nhc->uncompress) {
nhc               164 net/6lowpan/nhc.c 			ret = nhc->uncompress(skb, sizeof(struct ipv6hdr) +
nhc               165 net/6lowpan/nhc.c 					      nhc->nexthdrlen);
nhc               173 net/6lowpan/nhc.c 				    nhc->name);
nhc               182 net/6lowpan/nhc.c 	hdr->nexthdr = nhc->nexthdr;
nhc               185 net/6lowpan/nhc.c 		       skb_transport_header(skb), nhc->nexthdrlen);
nhc               192 net/6lowpan/nhc.c int lowpan_nhc_add(struct lowpan_nhc *nhc)
nhc               196 net/6lowpan/nhc.c 	if (!nhc->idlen || !nhc->idsetup)
nhc               199 net/6lowpan/nhc.c 	WARN_ONCE(nhc->idlen > LOWPAN_NHC_MAX_ID_LEN,
nhc               201 net/6lowpan/nhc.c 		  nhc->idlen);
nhc               203 net/6lowpan/nhc.c 	nhc->idsetup(nhc);
nhc               207 net/6lowpan/nhc.c 	if (lowpan_nexthdr_nhcs[nhc->nexthdr]) {
nhc               212 net/6lowpan/nhc.c 	ret = lowpan_nhc_insert(nhc);
nhc               216 net/6lowpan/nhc.c 	lowpan_nexthdr_nhcs[nhc->nexthdr] = nhc;
nhc               223 net/6lowpan/nhc.c void lowpan_nhc_del(struct lowpan_nhc *nhc)
nhc               227 net/6lowpan/nhc.c 	lowpan_nhc_remove(nhc);
nhc               228 net/6lowpan/nhc.c 	lowpan_nexthdr_nhcs[nhc->nexthdr] = NULL;
nhc                76 net/6lowpan/nhc.h 	void		(*idsetup)(struct lowpan_nhc *nhc);
nhc               129 net/6lowpan/nhc.h int lowpan_nhc_add(struct lowpan_nhc *nhc);
nhc               136 net/6lowpan/nhc.h void lowpan_nhc_del(struct lowpan_nhc *nhc);
nhc                13 net/6lowpan/nhc_dest.c static void dest_nhid_setup(struct lowpan_nhc *nhc)
nhc                15 net/6lowpan/nhc_dest.c 	nhc->id[0] = LOWPAN_NHC_DEST_ID_0;
nhc                16 net/6lowpan/nhc_dest.c 	nhc->idmask[0] = LOWPAN_NHC_DEST_MASK_0;
nhc                12 net/6lowpan/nhc_fragment.c static void fragment_nhid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_fragment.c 	nhc->id[0] = LOWPAN_NHC_FRAGMENT_ID_0;
nhc                15 net/6lowpan/nhc_fragment.c 	nhc->idmask[0] = LOWPAN_NHC_FRAGMENT_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_ext_dest.c static void dest_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_ext_dest.c 	nhc->id[0] = LOWPAN_GHC_EXT_DEST_ID_0;
nhc                15 net/6lowpan/nhc_ghc_ext_dest.c 	nhc->idmask[0] = LOWPAN_GHC_EXT_DEST_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_ext_frag.c static void frag_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_ext_frag.c 	nhc->id[0] = LOWPAN_GHC_EXT_FRAG_ID_0;
nhc                15 net/6lowpan/nhc_ghc_ext_frag.c 	nhc->idmask[0] = LOWPAN_GHC_EXT_FRAG_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_ext_hop.c static void hop_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_ext_hop.c 	nhc->id[0] = LOWPAN_GHC_EXT_HOP_ID_0;
nhc                15 net/6lowpan/nhc_ghc_ext_hop.c 	nhc->idmask[0] = LOWPAN_GHC_EXT_HOP_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_ext_route.c static void route_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_ext_route.c 	nhc->id[0] = LOWPAN_GHC_EXT_ROUTE_ID_0;
nhc                15 net/6lowpan/nhc_ghc_ext_route.c 	nhc->idmask[0] = LOWPAN_GHC_EXT_ROUTE_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_icmpv6.c static void icmpv6_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_icmpv6.c 	nhc->id[0] = LOWPAN_GHC_ICMPV6_ID_0;
nhc                15 net/6lowpan/nhc_ghc_icmpv6.c 	nhc->idmask[0] = LOWPAN_GHC_ICMPV6_MASK_0;
nhc                12 net/6lowpan/nhc_ghc_udp.c static void udp_ghid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ghc_udp.c 	nhc->id[0] = LOWPAN_GHC_UDP_ID_0;
nhc                15 net/6lowpan/nhc_ghc_udp.c 	nhc->idmask[0] = LOWPAN_GHC_UDP_MASK_0;
nhc                12 net/6lowpan/nhc_hop.c static void hop_nhid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_hop.c 	nhc->id[0] = LOWPAN_NHC_HOP_ID_0;
nhc                15 net/6lowpan/nhc_hop.c 	nhc->idmask[0] = LOWPAN_NHC_HOP_MASK_0;
nhc                12 net/6lowpan/nhc_ipv6.c static void ipv6_nhid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_ipv6.c 	nhc->id[0] = LOWPAN_NHC_IPV6_ID_0;
nhc                15 net/6lowpan/nhc_ipv6.c 	nhc->idmask[0] = LOWPAN_NHC_IPV6_MASK_0;
nhc                12 net/6lowpan/nhc_mobility.c static void mobility_nhid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_mobility.c 	nhc->id[0] = LOWPAN_NHC_MOBILITY_ID_0;
nhc                15 net/6lowpan/nhc_mobility.c 	nhc->idmask[0] = LOWPAN_NHC_MOBILITY_MASK_0;
nhc                12 net/6lowpan/nhc_routing.c static void routing_nhid_setup(struct lowpan_nhc *nhc)
nhc                14 net/6lowpan/nhc_routing.c 	nhc->id[0] = LOWPAN_NHC_ROUTING_ID_0;
nhc                15 net/6lowpan/nhc_routing.c 	nhc->idmask[0] = LOWPAN_NHC_ROUTING_MASK_0;
nhc               172 net/6lowpan/nhc_udp.c static void udp_nhid_setup(struct lowpan_nhc *nhc)
nhc               174 net/6lowpan/nhc_udp.c 	nhc->id[0] = LOWPAN_NHC_UDP_ID;
nhc               175 net/6lowpan/nhc_udp.c 	nhc->idmask[0] = LOWPAN_NHC_UDP_MASK;
nhc              4617 net/core/filter.c 	struct fib_nh_common *nhc;
nhc              4694 net/core/filter.c 	nhc = res.nhc;
nhc              4697 net/core/filter.c 	if (nhc->nhc_lwtstate)
nhc              4700 net/core/filter.c 	dev = nhc->nhc_dev;
nhc              4707 net/core/filter.c 	if (likely(nhc->nhc_gw_family != AF_INET6)) {
nhc              4708 net/core/filter.c 		if (nhc->nhc_gw_family)
nhc              4709 net/core/filter.c 			params->ipv4_dst = nhc->nhc_gw.ipv4;
nhc              4717 net/core/filter.c 		*dst = nhc->nhc_gw.ipv6;
nhc               235 net/ipv4/fib_frontend.c 			struct fib_nh_common *nhc = fib_info_nhc(res.fi, 0);
nhc               237 net/ipv4/fib_frontend.c 			if (!dev || dev == nhc->nhc_dev)
nhc               328 net/ipv4/fib_frontend.c 			const struct fib_nh_common *nhc = fib_info_nhc(fi, ret);
nhc               330 net/ipv4/fib_frontend.c 			if (nhc_l3mdev_matches_dev(nhc, dev)) {
nhc                49 net/ipv4/fib_lookup.h 	res->nhc = fib_info_nhc(fi, 0);
nhc               146 net/ipv4/fib_rules.c 		struct fib_nh_common *nhc = fib_info_nhc(result->fi, 0);
nhc               148 net/ipv4/fib_rules.c 		dev = nhc->nhc_dev;
nhc               162 net/ipv4/fib_semantics.c static void free_nh_exceptions(struct fib_nh_common *nhc)
nhc               167 net/ipv4/fib_semantics.c 	hash = rcu_dereference_protected(nhc->nhc_exceptions, 1);
nhc               209 net/ipv4/fib_semantics.c void fib_nh_common_release(struct fib_nh_common *nhc)
nhc               211 net/ipv4/fib_semantics.c 	if (nhc->nhc_dev)
nhc               212 net/ipv4/fib_semantics.c 		dev_put(nhc->nhc_dev);
nhc               214 net/ipv4/fib_semantics.c 	lwtstate_put(nhc->nhc_lwtstate);
nhc               215 net/ipv4/fib_semantics.c 	rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output);
nhc               216 net/ipv4/fib_semantics.c 	rt_fibinfo_free(&nhc->nhc_rth_input);
nhc               217 net/ipv4/fib_semantics.c 	free_nh_exceptions(nhc);
nhc               484 net/ipv4/fib_semantics.c 			struct fib_nh_common *nhc = fib_info_nhc(fi, i);
nhc               486 net/ipv4/fib_semantics.c 			if (nhc->nhc_lwtstate) {
nhc               489 net/ipv4/fib_semantics.c 						nhc->nhc_lwtstate);
nhc               536 net/ipv4/fib_semantics.c 	const struct fib_nh_common *nhc = fib_info_nhc(fi, 0);
nhc               540 net/ipv4/fib_semantics.c 	if (likely(nhc->nhc_gw_family == AF_INET))
nhc               541 net/ipv4/fib_semantics.c 		n = neigh_lookup(&arp_tbl, &nhc->nhc_gw.ipv4, nhc->nhc_dev);
nhc               542 net/ipv4/fib_semantics.c 	else if (nhc->nhc_gw_family == AF_INET6)
nhc               543 net/ipv4/fib_semantics.c 		n = neigh_lookup(ipv6_stub->nd_tbl, &nhc->nhc_gw.ipv6,
nhc               544 net/ipv4/fib_semantics.c 				 nhc->nhc_dev);
nhc               566 net/ipv4/fib_semantics.c int fib_nh_common_init(struct fib_nh_common *nhc, struct nlattr *encap,
nhc               572 net/ipv4/fib_semantics.c 	nhc->nhc_pcpu_rth_output = alloc_percpu_gfp(struct rtable __rcu *,
nhc               574 net/ipv4/fib_semantics.c 	if (!nhc->nhc_pcpu_rth_output)
nhc               585 net/ipv4/fib_semantics.c 		err = lwtunnel_build_state(encap_type, encap, nhc->nhc_family,
nhc               590 net/ipv4/fib_semantics.c 		nhc->nhc_lwtstate = lwtstate_get(lwtstate);
nhc               596 net/ipv4/fib_semantics.c 	rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output);
nhc               597 net/ipv4/fib_semantics.c 	nhc->nhc_pcpu_rth_output = NULL;
nhc              1280 net/ipv4/fib_semantics.c __be32 fib_info_update_nhc_saddr(struct net *net, struct fib_nh_common *nhc,
nhc              1285 net/ipv4/fib_semantics.c 	if (nhc->nhc_family != AF_INET)
nhc              1286 net/ipv4/fib_semantics.c 		return inet_select_addr(nhc->nhc_dev, 0, scope);
nhc              1288 net/ipv4/fib_semantics.c 	nh = container_of(nhc, struct fib_nh, nh_common);
nhc              1297 net/ipv4/fib_semantics.c 	struct fib_nh_common *nhc = res->nhc;
nhc              1302 net/ipv4/fib_semantics.c 	if (nhc->nhc_family == AF_INET) {
nhc              1305 net/ipv4/fib_semantics.c 		nh = container_of(nhc, struct fib_nh, nh_common);
nhc              1310 net/ipv4/fib_semantics.c 	return fib_info_update_nhc_saddr(net, nhc, res->fi->fib_scope);
nhc              1584 net/ipv4/fib_semantics.c int fib_nexthop_info(struct sk_buff *skb, const struct fib_nh_common *nhc,
nhc              1587 net/ipv4/fib_semantics.c 	if (nhc->nhc_flags & RTNH_F_DEAD)
nhc              1590 net/ipv4/fib_semantics.c 	if (nhc->nhc_flags & RTNH_F_LINKDOWN) {
nhc              1594 net/ipv4/fib_semantics.c 		switch (nhc->nhc_family) {
nhc              1596 net/ipv4/fib_semantics.c 			if (ip_ignore_linkdown(nhc->nhc_dev))
nhc              1600 net/ipv4/fib_semantics.c 			if (ip6_ignore_linkdown(nhc->nhc_dev))
nhc              1607 net/ipv4/fib_semantics.c 	switch (nhc->nhc_gw_family) {
nhc              1609 net/ipv4/fib_semantics.c 		if (nla_put_in_addr(skb, RTA_GATEWAY, nhc->nhc_gw.ipv4))
nhc              1616 net/ipv4/fib_semantics.c 		if (rt_family != nhc->nhc_gw_family) {
nhc              1627 net/ipv4/fib_semantics.c 			memcpy(via->rtvia_addr, &nhc->nhc_gw.ipv6, alen);
nhc              1629 net/ipv4/fib_semantics.c 					    &nhc->nhc_gw.ipv6) < 0) {
nhc              1635 net/ipv4/fib_semantics.c 	*flags |= (nhc->nhc_flags & RTNH_F_ONLINK);
nhc              1636 net/ipv4/fib_semantics.c 	if (nhc->nhc_flags & RTNH_F_OFFLOAD)
nhc              1639 net/ipv4/fib_semantics.c 	if (!skip_oif && nhc->nhc_dev &&
nhc              1640 net/ipv4/fib_semantics.c 	    nla_put_u32(skb, RTA_OIF, nhc->nhc_dev->ifindex))
nhc              1643 net/ipv4/fib_semantics.c 	if (nhc->nhc_lwtstate &&
nhc              1644 net/ipv4/fib_semantics.c 	    lwtunnel_fill_encap(skb, nhc->nhc_lwtstate,
nhc              1656 net/ipv4/fib_semantics.c int fib_add_nexthop(struct sk_buff *skb, const struct fib_nh_common *nhc,
nhc              1659 net/ipv4/fib_semantics.c 	const struct net_device *dev = nhc->nhc_dev;
nhc              1670 net/ipv4/fib_semantics.c 	if (fib_nexthop_info(skb, nhc, rt_family, &flags, true) < 0)
nhc              1776 net/ipv4/fib_semantics.c 		const struct fib_nh_common *nhc = fib_info_nhc(fi, 0);
nhc              1779 net/ipv4/fib_semantics.c 		if (fib_nexthop_info(skb, nhc, AF_INET, &flags, false) < 0)
nhc              1784 net/ipv4/fib_semantics.c 		if (nhc->nhc_family == AF_INET) {
nhc              1787 net/ipv4/fib_semantics.c 			nh = container_of(nhc, struct fib_nh, nh_common);
nhc              1874 net/ipv4/fib_semantics.c void fib_nhc_update_mtu(struct fib_nh_common *nhc, u32 new, u32 orig)
nhc              1879 net/ipv4/fib_semantics.c 	bucket = rcu_dereference_protected(nhc->nhc_exceptions, 1);
nhc              2002 net/ipv4/fib_semantics.c 		struct fib_nh_common *nhc;
nhc              2025 net/ipv4/fib_semantics.c 		nhc = fib_info_nhc(next_fi, 0);
nhc              2026 net/ipv4/fib_semantics.c 		if (!nhc->nhc_gw_family || nhc->nhc_scope != RT_SCOPE_LINK)
nhc              2175 net/ipv4/fib_semantics.c 				res->nhc = &nexthop_nh->nh_common;
nhc              2184 net/ipv4/fib_semantics.c 		res->nhc = &nexthop_nh->nh_common;
nhc              1474 net/ipv4/fib_trie.c 			struct fib_nh_common *nhc = fib_info_nhc(fi, nhsel);
nhc              1476 net/ipv4/fib_trie.c 			if (nhc->nhc_flags & RTNH_F_DEAD)
nhc              1478 net/ipv4/fib_trie.c 			if (ip_ignore_linkdown(nhc->nhc_dev) &&
nhc              1479 net/ipv4/fib_trie.c 			    nhc->nhc_flags & RTNH_F_LINKDOWN &&
nhc              1484 net/ipv4/fib_trie.c 				    flp->flowi4_oif != nhc->nhc_oif)
nhc              1494 net/ipv4/fib_trie.c 			res->nhc = nhc;
nhc              1503 net/ipv4/fib_trie.c 			trace_fib_table_lookup(tb->tb_id, flp, nhc, err);
nhc              2761 net/ipv4/fib_trie.c 		const struct fib_nh_common *nhc = fib_info_nhc(fi, 0);
nhc              2763 net/ipv4/fib_trie.c 		if (nhc->nhc_gw.ipv4)
nhc              2810 net/ipv4/fib_trie.c 			struct fib_nh_common *nhc = fib_info_nhc(fi, 0);
nhc              2813 net/ipv4/fib_trie.c 			if (nhc->nhc_gw_family == AF_INET)
nhc              2814 net/ipv4/fib_trie.c 				gw = nhc->nhc_gw.ipv4;
nhc              2819 net/ipv4/fib_trie.c 				   nhc->nhc_dev ? nhc->nhc_dev->name : "*",
nhc               643 net/ipv4/route.c static void update_or_create_fnhe(struct fib_nh_common *nhc, __be32 daddr,
nhc               654 net/ipv4/route.c 	genid = fnhe_genid(dev_net(nhc->nhc_dev));
nhc               659 net/ipv4/route.c 	hash = rcu_dereference(nhc->nhc_exceptions);
nhc               664 net/ipv4/route.c 		rcu_assign_pointer(nhc->nhc_exceptions, hash);
nhc               716 net/ipv4/route.c 		rt = rcu_dereference(nhc->nhc_rth_input);
nhc               722 net/ipv4/route.c 			prt = per_cpu_ptr(nhc->nhc_pcpu_rth_output, i);
nhc               788 net/ipv4/route.c 				struct fib_nh_common *nhc = FIB_RES_NHC(res);
nhc               790 net/ipv4/route.c 				update_or_create_fnhe(nhc, fl4->daddr, new_gw,
nhc              1036 net/ipv4/route.c 		struct fib_nh_common *nhc = FIB_RES_NHC(res);
nhc              1038 net/ipv4/route.c 		update_or_create_fnhe(nhc, fl4->daddr, 0, mtu, lock,
nhc              1325 net/ipv4/route.c static void ip_del_fnhe(struct fib_nh_common *nhc, __be32 daddr)
nhc              1333 net/ipv4/route.c 	hash = rcu_dereference_protected(nhc->nhc_exceptions,
nhc              1359 net/ipv4/route.c static struct fib_nh_exception *find_exception(struct fib_nh_common *nhc,
nhc              1362 net/ipv4/route.c 	struct fnhe_hash_bucket *hash = rcu_dereference(nhc->nhc_exceptions);
nhc              1376 net/ipv4/route.c 				ip_del_fnhe(nhc, daddr);
nhc              1393 net/ipv4/route.c 	struct fib_nh_common *nhc = res->nhc;
nhc              1394 net/ipv4/route.c 	struct net_device *dev = nhc->nhc_dev;
nhc              1405 net/ipv4/route.c 		fnhe = find_exception(nhc, daddr);
nhc              1413 net/ipv4/route.c 	return mtu - lwtunnel_headroom(nhc->nhc_lwtstate, mtu);
nhc              1466 net/ipv4/route.c static bool rt_cache_route(struct fib_nh_common *nhc, struct rtable *rt)
nhc              1472 net/ipv4/route.c 		p = (struct rtable **)&nhc->nhc_rth_input;
nhc              1474 net/ipv4/route.c 		p = (struct rtable **)raw_cpu_ptr(nhc->nhc_pcpu_rth_output);
nhc              1569 net/ipv4/route.c 		struct fib_nh_common *nhc = FIB_RES_NHC(*res);
nhc              1571 net/ipv4/route.c 		if (nhc->nhc_gw_family && nhc->nhc_scope == RT_SCOPE_LINK) {
nhc              1573 net/ipv4/route.c 			rt->rt_gw_family = nhc->nhc_gw_family;
nhc              1575 net/ipv4/route.c 			if (likely(nhc->nhc_gw_family == AF_INET))
nhc              1576 net/ipv4/route.c 				rt->rt_gw4 = nhc->nhc_gw.ipv4;
nhc              1578 net/ipv4/route.c 				rt->rt_gw6 = nhc->nhc_gw.ipv6;
nhc              1584 net/ipv4/route.c 		if (nhc->nhc_family == AF_INET) {
nhc              1587 net/ipv4/route.c 			nh = container_of(nhc, struct fib_nh, nh_common);
nhc              1591 net/ipv4/route.c 		rt->dst.lwtstate = lwtstate_get(nhc->nhc_lwtstate);
nhc              1595 net/ipv4/route.c 			cached = rt_cache_route(nhc, rt);
nhc              1786 net/ipv4/route.c 	struct fib_nh_common *nhc = FIB_RES_NHC(*res);
nhc              1787 net/ipv4/route.c 	struct net_device *dev = nhc->nhc_dev;
nhc              1816 net/ipv4/route.c 		gw = nhc->nhc_gw_family == AF_INET ? nhc->nhc_gw.ipv4 : 0;
nhc              1837 net/ipv4/route.c 	fnhe = find_exception(nhc, daddr);
nhc              1842 net/ipv4/route.c 			rth = rcu_dereference(nhc->nhc_rth_input);
nhc              2168 net/ipv4/route.c 		struct fib_nh_common *nhc = FIB_RES_NHC(*res);
nhc              2170 net/ipv4/route.c 		rth = rcu_dereference(nhc->nhc_rth_input);
nhc              2198 net/ipv4/route.c 		struct fib_nh_common *nhc = FIB_RES_NHC(*res);
nhc              2200 net/ipv4/route.c 		rth->dst.lwtstate = lwtstate_get(nhc->nhc_lwtstate);
nhc              2207 net/ipv4/route.c 		if (unlikely(!rt_cache_route(nhc, rth)))
nhc              2378 net/ipv4/route.c 		struct fib_nh_common *nhc = FIB_RES_NHC(*res);
nhc              2381 net/ipv4/route.c 		fnhe = find_exception(nhc, fl4->daddr);
nhc              2389 net/ipv4/route.c 				     !(nhc->nhc_gw_family &&
nhc              2390 net/ipv4/route.c 				       nhc->nhc_scope == RT_SCOPE_LINK))) {
nhc              2394 net/ipv4/route.c 			prth = raw_cpu_ptr(nhc->nhc_pcpu_rth_output);
nhc              2923 net/ipv4/route.c 		struct fib_nh_common *nhc = fib_info_nhc(fi, nhsel);
nhc              2927 net/ipv4/route.c 		if (nhc->nhc_flags & RTNH_F_DEAD)
nhc              2931 net/ipv4/route.c 		bucket = rcu_dereference(nhc->nhc_exceptions);