Lines Matching refs:mhdr

104 static int filter_nlmesg(int (*fun)(struct nlmsghdr *mhdr, char **), char **);
599 struct nlmsghdr mhdr;
629 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
630 request.mhdr.nlmsg_flags = NLM_F_REQUEST|NLM_F_ACK;
632 request.mhdr.nlmsg_flags |= NLM_F_CREATE|NLM_F_EXCL;
633 request.mhdr.nlmsg_type = RTM_NEWLINK;
635 request.mhdr.nlmsg_type = RTM_DELLINK;
639 attr = NLMSG_TAIL(&request.mhdr);
641 add_string_to_rtattr(&request.mhdr, sizeof(request),
643 add_string_to_rtattr(&request.mhdr, sizeof(request),
646 struct rtattr *data = NLMSG_TAIL(&request.mhdr);
647 add_string_to_rtattr(&request.mhdr, sizeof(request),
649 vlan_parse_opt(++argv, &request.mhdr, sizeof(request));
650 data->rta_len = (void *)NLMSG_TAIL(&request.mhdr) - (void *)data;
652 attr->rta_len = (void *)NLMSG_TAIL(&request.mhdr) - (void *)attr;
657 add_string_to_rtattr(&request.mhdr, sizeof(request),
664 add_string_to_rtattr(&request.mhdr, sizeof(request),
677 add_string_to_rtattr(&request.mhdr, sizeof(request), IFLA_IFNAME, name, len);
679 send_nlmesg(0, 0, 0, (void *)&request, request.mhdr.nlmsg_len);
944 static int display_link_info(struct nlmsghdr *mhdr, char **argv)
948 if (!get_link_info(mhdr, &link, argv)) {
963 struct nlmsghdr mhdr;
970 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
971 request.mhdr.nlmsg_flags = NLM_F_REQUEST|NLM_F_ACK;
972 if (!index) request.mhdr.nlmsg_flags |= NLM_F_ROOT|NLM_F_MATCH;
974 request.mhdr.nlmsg_type = RTM_GETLINK;
1571 static int display_route_info(struct nlmsghdr *mhdr, char **argv)
1574 struct rtmsg *msg = NLMSG_DATA(mhdr);
1576 int32_t tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg));
1580 if (mhdr->nlmsg_type != RTM_NEWROUTE) return 0;
1705 memcpy(toybuf, (void*)mhdr,mhdr->nlmsg_len);
1709 struct nlmsghdr* mhdr = (struct nlmsghdr*)toybuf;
1710 struct rtmsg *msg = NLMSG_DATA(mhdr);
1711 int tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg));
1725 mhdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
1726 mhdr->nlmsg_type = RTM_DELROUTE;
1727 mhdr->nlmsg_pid = 0;
1729 if (send(sockfd , (void*)mhdr, mhdr->nlmsg_len, 0) < 0)
1733 struct nlmsghdr *mhdr;
1747 for (mhdr = (struct nlmsghdr*)toybuf; NLMSG_OK(mhdr, msglen);
1748 mhdr = NLMSG_NEXT(mhdr, msglen)) {
1749 switch (mhdr->nlmsg_type) {
1755 struct nlmsgerr *merr = (struct nlmsgerr*)NLMSG_DATA(mhdr);
1758 if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr)))
1785 struct nlmsghdr mhdr;
1791 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
1792 request.mhdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
1793 request.mhdr.nlmsg_type = RTM_GETROUTE;
1811 add_string_to_rtattr(&request.mhdr, sizeof(request),
1822 add_string_to_rtattr(&request.mhdr, sizeof(request),
1840 struct nlmsghdr *mhdr = (struct nlmsghdr*)toybuf;
1841 struct rtmsg *msg = NLMSG_DATA(mhdr);
1842 int tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg));
1845 if (mhdr->nlmsg_type != RTM_NEWROUTE) error_exit("not a route?");
1860 mhdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
1861 mhdr->nlmsg_type = RTM_GETROUTE;
1862 mhdr->nlmsg_pid = 0;
1865 send_nlmesg(0, 0, 0, mhdr, mhdr->nlmsg_len);
1879 struct nlmsghdr mhdr;
1987 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof (struct rtmsg));
1988 request.mhdr.nlmsg_flags = NLM_F_REQUEST;
1989 request.mhdr.nlmsg_flags |= NLM_F_ROOT | NLM_F_MATCH;
1990 request.mhdr.nlmsg_type = RTM_GETROUTE;
2190 struct nlmsghdr mhdr;
2196 request.mhdr.nlmsg_type = opt;
2197 request.mhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
2198 request.mhdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK |
2221 add_string_to_rtattr(&request.mhdr, sizeof(request),
2236 add_string_to_rtattr(&request.mhdr, sizeof(request),
2268 add_string_to_rtattr(&request.mhdr, sizeof(request),
2285 add_string_to_rtattr(&request.mhdr, sizeof(request),
2298 add_string_to_rtattr(&request.mhdr, sizeof(request),
2325 static int show_rules(struct nlmsghdr *mhdr,
2328 struct rtmsg *msg = NLMSG_DATA(mhdr);
2330 int32_t tvar, msglen = mhdr->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg));
2334 if (mhdr->nlmsg_type != RTM_NEWRULE) return 0;
2785 static int filter_nlmesg(int (*fun)(struct nlmsghdr *mhdr, char **argv),
2789 struct nlmsghdr *mhdr;
2801 for (mhdr = (struct nlmsghdr*)TT.gbuf; NLMSG_OK(mhdr, msglen);
2802 mhdr = NLMSG_NEXT(mhdr, msglen)) {
2804 if (mhdr->nlmsg_pid != getpid())
2806 switch (mhdr->nlmsg_type) {
2811 struct nlmsgerr *merr = (struct nlmsgerr*)NLMSG_DATA(mhdr);
2814 if (mhdr->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr)))
2823 if (fun && (err = fun(mhdr, argv))) return err;