Searched refs:rtnh (Results 1 – 7 of 7) sorted by relevance
| /linux/include/net/ |
| H 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/ |
| H A D | fib_semantics.c | 681 static int fib_count_nexthops(struct rtnexthop *rtnh, int remaining, in fib_count_nexthops() argument 686 while (rtnh_ok(rtnh, remaining)) { in fib_count_nexthops() 688 rtnh = rtnh_next(rtnh, &remaining); in fib_count_nexthops() 715 static int fib_get_nhs(struct fib_info *fi, struct rtnexthop *rtnh, in fib_get_nhs() argument 729 if (!rtnh_ok(rtnh, remaining)) { in fib_get_nhs() 735 if (rtnh->rtnh_flags & (RTNH_F_DEAD | RTNH_F_LINKDOWN)) { in fib_get_nhs() 741 fib_cfg.fc_flags = (cfg->fc_flags & ~0xFF) | rtnh->rtnh_flags; in fib_get_nhs() 742 fib_cfg.fc_oif = rtnh->rtnh_ifindex; in fib_get_nhs() 744 attrlen = rtnh_attrlen(rtnh); in fib_get_nhs() 746 struct nlattr *nla, *nlav, *attrs = rtnh_attrs(rtnh); in fib_get_nhs() [all …]
|
| /linux/include/uapi/linux/ |
| H A D | rtnetlink.h | 443 #define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \ argument 444 ((int)(rtnh)->rtnh_len) <= (len)) 445 #define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) argument 448 #define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) argument
|
| /linux/tools/include/uapi/linux/ |
| H A D | rtnetlink.h | 443 #define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \ argument 444 ((int)(rtnh)->rtnh_len) <= (len)) 445 #define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len))) argument 448 #define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0))) argument
|
| /linux/net/core/ |
| H A D | lwtunnel.c | 185 struct rtnexthop *rtnh = (struct rtnexthop *)attr; in lwtunnel_valid_encap_type_attr() local 191 while (rtnh_ok(rtnh, remaining)) { in lwtunnel_valid_encap_type_attr() 192 attrlen = rtnh_attrlen(rtnh); in lwtunnel_valid_encap_type_attr() 194 attrs = rtnh_attrs(rtnh); in lwtunnel_valid_encap_type_attr() 208 rtnh = rtnh_next(rtnh, &remaining); in lwtunnel_valid_encap_type_attr()
|
| /linux/net/mpls/ |
| H A D | af_mpls.c | 28 #include <net/rtnh.h> 856 static u8 mpls_count_nexthops(struct rtnexthop *rtnh, int len, in mpls_count_nexthops() 866 while (rtnh_ok(rtnh, remaining)) { in mpls_count_nexthops() 867 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in mpls_count_nexthops() 871 attrlen = rtnh_attrlen(rtnh); in mpls_count_nexthops() 898 rtnh = rtnh_next(rtnh, &remaining); in mpls_nh_build_multi() 909 struct rtnexthop *rtnh = cfg->rc_mp; in mpls_nh_build_multi() 923 if (!rtnh_ok(rtnh, remaining)) in mpls_nh_build_multi() 929 if (rtnh in mpls_nh_build_multi() 836 mpls_count_nexthops(struct rtnexthop * rtnh,int len,u8 cfg_via_alen,u8 * max_via_alen,u8 * max_labels) mpls_count_nexthops() argument 889 struct rtnexthop *rtnh = cfg->rc_mp; mpls_nh_build_multi() local 2023 struct rtnexthop *rtnh; mpls_dump_route() local [all...] |
| /linux/net/ipv6/ |
| H A D | route.c | 5121 struct rtnexthop *rtnh; in rtm_to_fib6_multipath_config() local 5125 rtnh = (struct rtnexthop *)cfg->fc_mp; in rtm_to_fib6_multipath_config() 5127 if (!rtnh_ok(rtnh, remaining)) { in rtm_to_fib6_multipath_config() 5134 int attrlen = rtnh_attrlen(rtnh); in rtm_to_fib6_multipath_config() 5139 attrs = rtnh_attrs(rtnh); in rtm_to_fib6_multipath_config() 5158 rtnh = rtnh_next(rtnh, &remaining); in rtm_to_fib6_multipath_config() 5159 } while (rtnh_ok(rtnh, remaining)); in rtm_to_fib6_multipath_config() 5405 struct rtnexthop *rtnh; in ip6_route_multipath_add() local 5428 rtnh = (struct rtnexthop *)cfg->fc_mp; in ip6_route_multipath_add() 5433 while (rtnh_ok(rtnh, remaining)) { in ip6_route_multipath_add() [all …]
|