Lines Matching full:ss

37 nl_init_socket(struct snl_state *ss)  in nl_init_socket()  argument
39 if (snl_init(ss, NETLINK_ROUTE)) in nl_init_socket()
46 if (snl_init(ss, NETLINK_ROUTE)) in nl_init_socket()
54 get_link_info(struct snl_state *ss, uint32_t ifindex, in get_link_info() argument
59 snl_init_writer(ss, &nw); in get_link_info()
65 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(ss, hdr)) in get_link_info()
68 hdr = snl_read_reply(ss, hdr->nlmsg_seq); in get_link_info()
73 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_link_parser_simple, link)) in get_link_info()
82 has_l2(struct snl_state *ss, uint32_t ifindex) in has_l2() argument
86 if (!get_link_info(ss, ifindex, &link)) in has_l2()
104 guess_ifindex(struct snl_state *ss, uint32_t fibnum, struct in_addr addr) in guess_ifindex() argument
108 snl_init_writer(ss, &nw); in guess_ifindex()
118 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(ss, hdr)) in guess_ifindex()
121 hdr = snl_read_reply(ss, hdr->nlmsg_seq); in guess_ifindex()
129 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_route_parser, &r)) in guess_ifindex()
136 if (has_l2(ss, r.rta_oif)) in guess_ifindex()
140 snl_init_writer(ss, &nw); in guess_ifindex()
150 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(ss, hdr)) in guess_ifindex()
153 hdr = snl_read_reply(ss, hdr->nlmsg_seq); in guess_ifindex()
161 if (!snl_parse_nlmsg(ss, hdr, &snl_nhmsg_parser, &nh)) in guess_ifindex()
168 fix_ifindex(struct snl_state *ss, uint32_t ifindex, struct in_addr addr) in fix_ifindex() argument
171 ifindex = guess_ifindex(ss, get_myfib(), addr); in fix_ifindex()
331 struct snl_state ss = {}; in delete_nl() local
339 nl_init_socket(&ss); in delete_nl()
341 ifindex = fix_ifindex(&ss, ifindex, dst->sin_addr); in delete_nl()
344 snl_free(&ss); in delete_nl()
348 snl_init_writer(&ss, &nw); in delete_nl()
357 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(&ss, hdr)) { in delete_nl()
358 snl_free(&ss); in delete_nl()
363 snl_read_reply_code(&ss, hdr->nlmsg_seq, &e); in delete_nl()
372 snl_free(&ss); in delete_nl()
380 struct snl_state ss = {}; in set_nl() local
383 nl_init_socket(&ss); in set_nl()
385 ifindex = fix_ifindex(&ss, ifindex, dst->sin_addr); in set_nl()
388 snl_free(&ss); in set_nl()
392 snl_init_writer(&ss, &nw); in set_nl()
422 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(&ss, hdr)) { in set_nl()
423 snl_free(&ss); in set_nl()
428 snl_read_reply_code(&ss, hdr->nlmsg_seq, &e); in set_nl()
435 snl_free(&ss); in set_nl()