• Home
  • Raw
  • Download

Lines Matching refs:nh

39 	struct rtnl_nexthop *nh;  in rtnl_route_nh_alloc()  local
41 nh = calloc(1, sizeof(*nh)); in rtnl_route_nh_alloc()
42 if (!nh) in rtnl_route_nh_alloc()
45 nl_init_list_head(&nh->rtnh_list); in rtnl_route_nh_alloc()
47 return nh; in rtnl_route_nh_alloc()
52 struct rtnl_nexthop *nh; in rtnl_route_nh_clone() local
54 nh = rtnl_route_nh_alloc(); in rtnl_route_nh_clone()
55 if (!nh) in rtnl_route_nh_clone()
58 nh->rtnh_flags = src->rtnh_flags; in rtnl_route_nh_clone()
59 nh->rtnh_flag_mask = src->rtnh_flag_mask; in rtnl_route_nh_clone()
60 nh->rtnh_weight = src->rtnh_weight; in rtnl_route_nh_clone()
61 nh->rtnh_ifindex = src->rtnh_ifindex; in rtnl_route_nh_clone()
62 nh->ce_mask = src->ce_mask; in rtnl_route_nh_clone()
65 nh->rtnh_gateway = nl_addr_clone(src->rtnh_gateway); in rtnl_route_nh_clone()
66 if (!nh->rtnh_gateway) { in rtnl_route_nh_clone()
67 free(nh); in rtnl_route_nh_clone()
72 return nh; in rtnl_route_nh_clone()
75 void rtnl_route_nh_free(struct rtnl_nexthop *nh) in rtnl_route_nh_free() argument
77 nl_addr_put(nh->rtnh_gateway); in rtnl_route_nh_free()
78 free(nh); in rtnl_route_nh_free()
107 static void nh_dump_line(struct rtnl_nexthop *nh, struct nl_dump_params *dp) in nh_dump_line() argument
116 if (nh->ce_mask & NH_ATTR_GATEWAY) in nh_dump_line()
117 nl_dump(dp, " %s", nl_addr2str(nh->rtnh_gateway, in nh_dump_line()
120 if(nh->ce_mask & NH_ATTR_IFINDEX) { in nh_dump_line()
124 nh->rtnh_ifindex, in nh_dump_line()
127 nl_dump(dp, " dev %d", nh->rtnh_ifindex); in nh_dump_line()
136 static void nh_dump_details(struct rtnl_nexthop *nh, struct nl_dump_params *dp) in nh_dump_details() argument
145 if (nh->ce_mask & NH_ATTR_GATEWAY) in nh_dump_details()
146 nl_dump(dp, " via %s", nl_addr2str(nh->rtnh_gateway, in nh_dump_details()
149 if(nh->ce_mask & NH_ATTR_IFINDEX) { in nh_dump_details()
153 nh->rtnh_ifindex, in nh_dump_details()
156 nl_dump(dp, " dev %d", nh->rtnh_ifindex); in nh_dump_details()
159 if (nh->ce_mask & NH_ATTR_WEIGHT) in nh_dump_details()
160 nl_dump(dp, " weight %u", nh->rtnh_weight); in nh_dump_details()
162 if (nh->ce_mask & NH_ATTR_REALMS) in nh_dump_details()
164 RTNL_REALM_FROM(nh->rtnh_realms), in nh_dump_details()
165 RTNL_REALM_TO(nh->rtnh_realms)); in nh_dump_details()
167 if (nh->ce_mask & NH_ATTR_FLAGS) in nh_dump_details()
168 nl_dump(dp, " <%s>", rtnl_route_nh_flags2str(nh->rtnh_flags, in nh_dump_details()
175 void rtnl_route_nh_dump(struct rtnl_nexthop *nh, struct nl_dump_params *dp) in rtnl_route_nh_dump() argument
179 nh_dump_line(nh, dp); in rtnl_route_nh_dump()
185 nh_dump_details(nh, dp); in rtnl_route_nh_dump()
198 void rtnl_route_nh_set_weight(struct rtnl_nexthop *nh, uint8_t weight) in rtnl_route_nh_set_weight() argument
200 nh->rtnh_weight = weight; in rtnl_route_nh_set_weight()
201 nh->ce_mask |= NH_ATTR_WEIGHT; in rtnl_route_nh_set_weight()
204 uint8_t rtnl_route_nh_get_weight(struct rtnl_nexthop *nh) in rtnl_route_nh_get_weight() argument
206 return nh->rtnh_weight; in rtnl_route_nh_get_weight()
209 void rtnl_route_nh_set_ifindex(struct rtnl_nexthop *nh, int ifindex) in rtnl_route_nh_set_ifindex() argument
211 nh->rtnh_ifindex = ifindex; in rtnl_route_nh_set_ifindex()
212 nh->ce_mask |= NH_ATTR_IFINDEX; in rtnl_route_nh_set_ifindex()
215 int rtnl_route_nh_get_ifindex(struct rtnl_nexthop *nh) in rtnl_route_nh_get_ifindex() argument
217 return nh->rtnh_ifindex; in rtnl_route_nh_get_ifindex()
221 void rtnl_route_nh_set_gateway(struct rtnl_nexthop *nh, struct nl_addr *addr) in rtnl_route_nh_set_gateway() argument
223 struct nl_addr *old = nh->rtnh_gateway; in rtnl_route_nh_set_gateway()
226 nh->rtnh_gateway = nl_addr_get(addr); in rtnl_route_nh_set_gateway()
227 nh->ce_mask |= NH_ATTR_GATEWAY; in rtnl_route_nh_set_gateway()
229 nh->ce_mask &= ~NH_ATTR_GATEWAY; in rtnl_route_nh_set_gateway()
230 nh->rtnh_gateway = NULL; in rtnl_route_nh_set_gateway()
237 struct nl_addr *rtnl_route_nh_get_gateway(struct rtnl_nexthop *nh) in rtnl_route_nh_get_gateway() argument
239 return nh->rtnh_gateway; in rtnl_route_nh_get_gateway()
242 void rtnl_route_nh_set_flags(struct rtnl_nexthop *nh, unsigned int flags) in rtnl_route_nh_set_flags() argument
244 nh->rtnh_flag_mask |= flags; in rtnl_route_nh_set_flags()
245 nh->rtnh_flags |= flags; in rtnl_route_nh_set_flags()
246 nh->ce_mask |= NH_ATTR_FLAGS; in rtnl_route_nh_set_flags()
249 void rtnl_route_nh_unset_flags(struct rtnl_nexthop *nh, unsigned int flags) in rtnl_route_nh_unset_flags() argument
251 nh->rtnh_flag_mask |= flags; in rtnl_route_nh_unset_flags()
252 nh->rtnh_flags &= ~flags; in rtnl_route_nh_unset_flags()
253 nh->ce_mask |= NH_ATTR_FLAGS; in rtnl_route_nh_unset_flags()
256 unsigned int rtnl_route_nh_get_flags(struct rtnl_nexthop *nh) in rtnl_route_nh_get_flags() argument
258 return nh->rtnh_flags; in rtnl_route_nh_get_flags()
261 void rtnl_route_nh_set_realms(struct rtnl_nexthop *nh, uint32_t realms) in rtnl_route_nh_set_realms() argument
263 nh->rtnh_realms = realms; in rtnl_route_nh_set_realms()
264 nh->ce_mask |= NH_ATTR_REALMS; in rtnl_route_nh_set_realms()
267 uint32_t rtnl_route_nh_get_realms(struct rtnl_nexthop *nh) in rtnl_route_nh_get_realms() argument
269 return nh->rtnh_realms; in rtnl_route_nh_get_realms()