Lines Matching full:ss

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