Lines Matching refs:mhdr
100 static int filter_nlmesg(int (*fun)(struct nlmsghdr *mhdr, char **), char **);
548 struct nlmsghdr mhdr; in linkupdate() member
578 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)); in linkupdate()
579 request.mhdr.nlmsg_flags = NLM_F_REQUEST|NLM_F_ACK; in linkupdate()
581 request.mhdr.nlmsg_flags |= NLM_F_CREATE|NLM_F_EXCL; in linkupdate()
582 request.mhdr.nlmsg_type = RTM_NEWLINK; in linkupdate()
584 request.mhdr.nlmsg_type = RTM_DELLINK; in linkupdate()
588 attr = NLMSG_TAIL(&request.mhdr); in linkupdate()
590 add_string_to_rtattr(&request.mhdr, sizeof(request), in linkupdate()
592 add_string_to_rtattr(&request.mhdr, sizeof(request), in linkupdate()
595 struct rtattr *data = NLMSG_TAIL(&request.mhdr); in linkupdate()
596 add_string_to_rtattr(&request.mhdr, sizeof(request), in linkupdate()
598 vlan_parse_opt(++argv, &request.mhdr, sizeof(request)); in linkupdate()
599 data->rta_len = (void *)NLMSG_TAIL(&request.mhdr) - (void *)data; in linkupdate()
601 attr->rta_len = (void *)NLMSG_TAIL(&request.mhdr) - (void *)attr; in linkupdate()
606 add_string_to_rtattr(&request.mhdr, sizeof(request), in linkupdate()
613 add_string_to_rtattr(&request.mhdr, sizeof(request), in linkupdate()
626 add_string_to_rtattr(&request.mhdr, sizeof(request), IFLA_IFNAME, name, len); in linkupdate()
628 send_nlmesg(0, 0, 0, (void *)&request, request.mhdr.nlmsg_len); in linkupdate()
893 static int display_link_info(struct nlmsghdr *mhdr, char **argv) in display_link_info() argument
897 if (!get_link_info(mhdr, &link, argv)) { in display_link_info()
912 struct nlmsghdr mhdr; in link_show() member
919 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)); in link_show()
920 request.mhdr.nlmsg_flags = NLM_F_REQUEST|NLM_F_ACK; in link_show()
921 if (!index) request.mhdr.nlmsg_flags |= NLM_F_ROOT|NLM_F_MATCH; in link_show()
923 request.mhdr.nlmsg_type = RTM_GETLINK; in link_show()
1463 static int display_route_info(struct nlmsghdr *mhdr, char **argv) in display_route_info() argument
1466 struct rtmsg *msg = NLMSG_DATA(mhdr); in display_route_info()
1468 int32_t tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg)); in display_route_info()
1472 if (mhdr->nlmsg_type != RTM_NEWROUTE) return 0; in display_route_info()
1593 memcpy(toybuf, (void*)mhdr,mhdr->nlmsg_len); in display_route_info()
1597 struct nlmsghdr* mhdr = (struct nlmsghdr*)toybuf; in display_route_info() local
1598 struct rtmsg *msg = NLMSG_DATA(mhdr); in display_route_info()
1599 int tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg)); in display_route_info()
1613 mhdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; in display_route_info()
1614 mhdr->nlmsg_type = RTM_DELROUTE; in display_route_info()
1615 mhdr->nlmsg_pid = 0; in display_route_info()
1617 if (send(sockfd , (void*)mhdr, mhdr->nlmsg_len, 0) < 0) in display_route_info()
1621 struct nlmsghdr *mhdr; in display_route_info() local
1635 for (mhdr = (struct nlmsghdr*)toybuf; NLMSG_OK(mhdr, msglen); in display_route_info()
1636 mhdr = NLMSG_NEXT(mhdr, msglen)) { in display_route_info()
1637 switch (mhdr->nlmsg_type) { in display_route_info()
1643 struct nlmsgerr *merr = (struct nlmsgerr*)NLMSG_DATA(mhdr); in display_route_info()
1646 if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr))) in display_route_info()
1673 struct nlmsghdr mhdr; in route_get() member
1679 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg)); in route_get()
1680 request.mhdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; in route_get()
1681 request.mhdr.nlmsg_type = RTM_GETROUTE; in route_get()
1699 add_string_to_rtattr(&request.mhdr, sizeof(request), in route_get()
1710 add_string_to_rtattr(&request.mhdr, sizeof(request), in route_get()
1728 struct nlmsghdr *mhdr = (struct nlmsghdr*)toybuf; in route_get() local
1729 struct rtmsg *msg = NLMSG_DATA(mhdr); in route_get()
1730 int tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg)); in route_get()
1733 if (mhdr->nlmsg_type != RTM_NEWROUTE) error_exit("not a route?"); in route_get()
1748 mhdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; in route_get()
1749 mhdr->nlmsg_type = RTM_GETROUTE; in route_get()
1750 mhdr->nlmsg_pid = 0; in route_get()
1753 send_nlmesg(0, 0, 0, mhdr, mhdr->nlmsg_len); in route_get()
1767 struct nlmsghdr mhdr; in route_show_flush() member
1875 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof (struct rtmsg)); in route_show_flush()
1876 request.mhdr.nlmsg_flags = NLM_F_REQUEST; in route_show_flush()
1877 request.mhdr.nlmsg_flags |= NLM_F_ROOT | NLM_F_MATCH; in route_show_flush()
1878 request.mhdr.nlmsg_type = RTM_GETROUTE; in route_show_flush()
2082 struct nlmsghdr mhdr; in ruleupdate() member
2088 request.mhdr.nlmsg_type = opt; in ruleupdate()
2089 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg)); in ruleupdate()
2090 request.mhdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | in ruleupdate()
2113 add_string_to_rtattr(&request.mhdr, sizeof(request), in ruleupdate()
2128 add_string_to_rtattr(&request.mhdr, sizeof(request), in ruleupdate()
2160 add_string_to_rtattr(&request.mhdr, sizeof(request), in ruleupdate()
2177 add_string_to_rtattr(&request.mhdr, sizeof(request), in ruleupdate()
2190 add_string_to_rtattr(&request.mhdr, sizeof(request), in ruleupdate()
2217 static int show_rules(struct nlmsghdr *mhdr, in show_rules() argument
2220 struct rtmsg *msg = NLMSG_DATA(mhdr); in show_rules()
2222 int32_t tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg)); in show_rules()
2226 if (mhdr->nlmsg_type != RTM_NEWRULE) return 0; in show_rules()
2679 static int filter_nlmesg(int (*fun)(struct nlmsghdr *mhdr, char **argv), in filter_nlmesg() argument
2683 struct nlmsghdr *mhdr; in filter_nlmesg() local
2695 for (mhdr = (struct nlmsghdr*)TT.gbuf; NLMSG_OK(mhdr, msglen); in filter_nlmesg()
2696 mhdr = NLMSG_NEXT(mhdr, msglen)) { in filter_nlmesg()
2698 if (mhdr->nlmsg_pid != getpid()) in filter_nlmesg()
2700 switch (mhdr->nlmsg_type) { in filter_nlmesg()
2705 struct nlmsgerr *merr = (struct nlmsgerr*)NLMSG_DATA(mhdr); in filter_nlmesg()
2708 if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr))) in filter_nlmesg()
2717 if (fun && (err = fun(mhdr, argv))) return err; in filter_nlmesg()