Lines Matching refs:nh

171 static struct rtattr *rtattr_add(struct nlmsghdr *nh, unsigned short type,  in rtattr_add()  argument
175 (struct rtattr *)((uint8_t *)nh + RTA_ALIGN(nh->nlmsg_len)); in rtattr_add()
178 nh->nlmsg_len = RTA_ALIGN(nh->nlmsg_len) + RTA_ALIGN(rta->rta_len); in rtattr_add()
182 static struct rtattr *rtattr_add_str(struct nlmsghdr *nh, unsigned short type, in rtattr_add_str() argument
185 struct rtattr *rta = rtattr_add(nh, type, strlen(s)); in rtattr_add_str()
191 static struct rtattr *rtattr_begin(struct nlmsghdr *nh, unsigned short type) in rtattr_begin() argument
193 return rtattr_add(nh, type, 0); in rtattr_begin()
196 static void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr) in rtattr_end() argument
198 uint8_t *end = (uint8_t *)nh + nh->nlmsg_len; in rtattr_end()
206 struct nlmsghdr nh; in setup_xfrmi_external_dev() member
213 struct nlmsghdr *nh; in setup_xfrmi_external_dev() local
216 nh = &req.nh; in setup_xfrmi_external_dev()
217 nh->nlmsg_len = NLMSG_LENGTH(sizeof(req.info)); in setup_xfrmi_external_dev()
218 nh->nlmsg_type = RTM_NEWLINK; in setup_xfrmi_external_dev()
219 nh->nlmsg_flags |= NLM_F_CREATE | NLM_F_REQUEST; in setup_xfrmi_external_dev()
221 rtattr_add_str(nh, IFLA_IFNAME, "ipsec0"); in setup_xfrmi_external_dev()
222 link_info = rtattr_begin(nh, IFLA_LINKINFO); in setup_xfrmi_external_dev()
223 rtattr_add_str(nh, IFLA_INFO_KIND, "xfrm"); in setup_xfrmi_external_dev()
224 info_data = rtattr_begin(nh, IFLA_INFO_DATA); in setup_xfrmi_external_dev()
225 rtattr_add(nh, IFLA_XFRM_COLLECT_METADATA, 0); in setup_xfrmi_external_dev()
226 rtattr_end(nh, info_data); in setup_xfrmi_external_dev()
227 rtattr_end(nh, link_info); in setup_xfrmi_external_dev()
236 ret = send(sock, nh, nh->nlmsg_len, 0); in setup_xfrmi_external_dev()
237 if (!ASSERT_EQ(ret, nh->nlmsg_len, "netlink send length")) in setup_xfrmi_external_dev()