Searched refs:rtnh (Results 1 – 7 of 7) sorted by relevance
| /linux/include/net/ |
| A D | rtnh.h | 8 static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining) in rtnh_ok() argument 10 return remaining >= (int)sizeof(*rtnh) && in rtnh_ok() 11 rtnh->rtnh_len >= sizeof(*rtnh) && in rtnh_ok() 12 rtnh->rtnh_len <= remaining; in rtnh_ok() 15 static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh, in rtnh_next() argument 18 int totlen = NLA_ALIGN(rtnh->rtnh_len); in rtnh_next() 21 return (struct rtnexthop *) ((char *) rtnh + totlen); in rtnh_next() 24 static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh) in rtnh_attrs() argument 26 return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh))); in rtnh_attrs() 29 static inline int rtnh_attrlen(const struct rtnexthop *rtnh) in rtnh_attrlen() argument [all …]
|
| /linux/net/ipv4/ |
| A D | fib_semantics.c | 663 rtnh = rtnh_next(rtnh, &remaining); in fib_count_nexthops() 767 rtnh = rtnh_next(rtnh, &remaining); in fib_get_nhs() 880 struct rtnexthop *rtnh; in fib_nh_match() local 933 rtnh = cfg->fc_mp; in fib_nh_match() 942 if (rtnh->rtnh_ifindex && rtnh->rtnh_ifindex != nh->fib_nh_oif) in fib_nh_match() 1003 rtnh = rtnh_next(rtnh, &remaining); in fib_nh_match() 1709 struct rtnexthop *rtnh; in fib_add_nexthop() local 1712 rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh)); in fib_add_nexthop() 1713 if (!rtnh) in fib_add_nexthop() 1722 rtnh->rtnh_flags = flags; in fib_add_nexthop() [all …]
|
| A D | ipmr.c | 2644 struct rtnexthop *rtnh = nla_data(nla); in ipmr_nla_get_ttls() local 2647 while (rtnh_ok(rtnh, remaining)) { in ipmr_nla_get_ttls() 2648 mfcc->mfcc_ttls[vifi] = rtnh->rtnh_hops; in ipmr_nla_get_ttls() 2651 rtnh = rtnh_next(rtnh, &remaining); in ipmr_nla_get_ttls()
|
| /linux/net/core/ |
| A D | lwtunnel.c | 190 struct rtnexthop *rtnh = (struct rtnexthop *)attr; in lwtunnel_valid_encap_type_attr() local 196 while (rtnh_ok(rtnh, remaining)) { in lwtunnel_valid_encap_type_attr() 197 attrlen = rtnh_attrlen(rtnh); in lwtunnel_valid_encap_type_attr() 199 attrs = rtnh_attrs(rtnh); in lwtunnel_valid_encap_type_attr() 214 rtnh = rtnh_next(rtnh, &remaining); in lwtunnel_valid_encap_type_attr()
|
| /linux/include/uapi/linux/ |
| A D | rtnetlink.h | 433 #define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \ argument 434 ((int)(rtnh)->rtnh_len) <= (len)) 435 #define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) argument 438 #define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) argument
|
| /linux/net/mpls/ |
| A D | af_mpls.c | 846 while (rtnh_ok(rtnh, remaining)) { in mpls_count_nexthops() 851 attrlen = rtnh_attrlen(rtnh); in mpls_count_nexthops() 878 rtnh = rtnh_next(rtnh, &remaining); in mpls_count_nexthops() 902 if (!rtnh_ok(rtnh, remaining)) in mpls_nh_build_multi() 908 if (rtnh->rtnh_hops || rtnh->rtnh_flags) in mpls_nh_build_multi() 911 attrlen = rtnh_attrlen(rtnh); in mpls_nh_build_multi() 928 rtnh = rtnh_next(rtnh, &remaining); in mpls_nh_build_multi() 2023 struct rtnexthop *rtnh; in mpls_dump_route() local 2037 rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh)); in mpls_dump_route() 2038 if (!rtnh) in mpls_dump_route() [all …]
|
| /linux/net/ipv6/ |
| A D | route.c | 5253 struct rtnexthop *rtnh; in ip6_route_multipath_add() local 5271 rtnh = (struct rtnexthop *)cfg->fc_mp; in ip6_route_multipath_add() 5276 while (rtnh_ok(rtnh, remaining)) { in ip6_route_multipath_add() 5278 if (rtnh->rtnh_ifindex) in ip6_route_multipath_add() 5281 attrlen = rtnh_attrlen(rtnh); in ip6_route_multipath_add() 5328 rtnh = rtnh_next(rtnh, &remaining); in ip6_route_multipath_add() 5437 struct rtnexthop *rtnh; in ip6_route_multipath_del() local 5447 while (rtnh_ok(rtnh, remaining)) { in ip6_route_multipath_del() 5449 if (rtnh->rtnh_ifindex) in ip6_route_multipath_del() 5452 attrlen = rtnh_attrlen(rtnh); in ip6_route_multipath_del() [all …]
|
Completed in 36 milliseconds