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, uint32_t *pflags) in has_l2() argument
87 if (!get_link_info(ss, ifindex, &link)) in has_l2()
106 guess_ifindex(struct snl_state *ss, uint32_t fibnum, struct in_addr addr) in guess_ifindex() argument
111 snl_init_writer(ss, &nw); in guess_ifindex()
121 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(ss, hdr)) in guess_ifindex()
124 hdr = snl_read_reply(ss, hdr->nlmsg_seq); in guess_ifindex()
132 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_route_parser, &r)) in guess_ifindex()
139 if (has_l2(ss, r.rta_oif, &ifflags)) in guess_ifindex()
150 snl_init_writer(ss, &nw); in guess_ifindex()
160 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(ss, hdr)) in guess_ifindex()
163 hdr = snl_read_reply(ss, hdr->nlmsg_seq); in guess_ifindex()
171 if (!snl_parse_nlmsg(ss, hdr, &snl_nhmsg_parser, &nh)) in guess_ifindex()
178 fix_ifindex(struct snl_state *ss, uint32_t ifindex, struct in_addr addr) in fix_ifindex() argument
181 ifindex = guess_ifindex(ss, get_myfib(), addr); in fix_ifindex()
341 struct snl_state ss = {}; in delete_nl() local
350 nl_init_socket(&ss); in delete_nl()
352 ifindex = fix_ifindex(&ss, ifindex, dst->sin_addr); in delete_nl()
355 snl_free(&ss); in delete_nl()
359 snl_init_writer(&ss, &nw); in delete_nl()
368 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(&ss, hdr)) { in delete_nl()
369 snl_free(&ss); in delete_nl()
374 snl_read_reply_code(&ss, hdr->nlmsg_seq, &e); in delete_nl()
383 snl_free(&ss); in delete_nl()
391 struct snl_state ss = {}; in set_nl() local
395 nl_init_socket(&ss); in set_nl()
397 ifindex = fix_ifindex(&ss, ifindex, dst->sin_addr); in set_nl()
400 snl_free(&ss); in set_nl()
404 snl_init_writer(&ss, &nw); in set_nl()
434 if (! (hdr = snl_finalize_msg(&nw)) || !snl_send_message(&ss, hdr)) { in set_nl()
435 snl_free(&ss); in set_nl()
440 snl_read_reply_code(&ss, hdr->nlmsg_seq, &e); in set_nl()
447 snl_free(&ss); in set_nl()