Lines Matching refs:xpinfo
253 struct xfrm_userpolicy_info xpinfo;
274 req.n.nlmsg_len = NLMSG_LENGTH(sizeof(req.xpinfo));
277 req.xpinfo.sel.family = preferred_family;
279 req.xpinfo.lft.soft_byte_limit = XFRM_INF;
280 req.xpinfo.lft.hard_byte_limit = XFRM_INF;
281 req.xpinfo.lft.soft_packet_limit = XFRM_INF;
282 req.xpinfo.lft.hard_packet_limit = XFRM_INF;
291 xfrm_policy_dir_parse(&req.xpinfo.dir, &argc, &argv);
305 if (get_u32(&req.xpinfo.index, *argv, 0))
317 req.xpinfo.action = XFRM_POLICY_ALLOW;
319 req.xpinfo.action = XFRM_POLICY_BLOCK;
324 if (get_u32(&req.xpinfo.priority, *argv, 0))
328 xfrm_policy_flag_parse(&req.xpinfo.flags, &argc,
332 xfrm_lifetime_cfg_parse(&req.xpinfo.lft, &argc, &argv);
356 xfrm_selector_parse(&req.xpinfo.sel, &argc, &argv);
358 preferred_family = req.xpinfo.sel.family;
396 if (req.xpinfo.sel.family == AF_UNSPEC)
397 req.xpinfo.sel.family = AF_INET;
407 static int xfrm_policy_filter_match(struct xfrm_userpolicy_info *xpinfo,
413 if ((xpinfo->dir^filter.xpinfo.dir)&filter.dir_mask)
420 if (xfrm_addr_match(&xpinfo->sel.saddr, &filter.xpinfo.sel.saddr,
426 if (xfrm_addr_match(&xpinfo->sel.daddr, &filter.xpinfo.sel.daddr,
431 if ((xpinfo->sel.ifindex^filter.xpinfo.sel.ifindex)&filter.sel_dev_mask)
434 if ((xpinfo->sel.proto^filter.xpinfo.sel.proto)&filter.upspec_proto_mask)
438 if ((xpinfo->sel.sport^filter.xpinfo.sel.sport)&filter.upspec_sport_mask)
443 if ((xpinfo->sel.dport^filter.xpinfo.sel.dport)&filter.upspec_dport_mask)
447 if ((xpinfo->index^filter.xpinfo.index)&filter.index_mask)
450 if ((xpinfo->action^filter.xpinfo.action)&filter.action_mask)
453 if ((xpinfo->priority^filter.xpinfo.priority)&filter.priority_mask)
457 if ((xpinfo->flags & filter.xpinfo.flags) == 0)
468 struct xfrm_userpolicy_info *xpinfo = NULL;
489 xpinfo = &xpexp->pol;
493 xpinfo = NLMSG_DATA(n);
494 len -= NLMSG_SPACE(sizeof(*xpinfo));
507 rta = XFRMP_RTA(xpinfo);
522 if (xpinfo && !xfrm_policy_filter_match(xpinfo, ptype))
538 if (RTA_PAYLOAD(tb[XFRMA_POLICY]) < sizeof(*xpinfo)) {
542 xpinfo = (struct xfrm_userpolicy_info *)RTA_DATA(tb[XFRMA_POLICY]);
545 xfrm_policy_info_print(xpinfo, tb, fp, NULL, NULL);
716 struct xfrm_userpolicy_info *xpinfo = NLMSG_DATA(n);
729 len -= NLMSG_LENGTH(sizeof(*xpinfo));
735 parse_rtattr(tb, XFRMA_MAX, XFRMP_RTA(xpinfo), len);
748 if (!xfrm_policy_filter_match(xpinfo, ptype))
763 memcpy(&xpid->sel, &xpinfo->sel, sizeof(xpid->sel));
764 xpid->dir = xpinfo->dir;
765 xpid->index = xpinfo->index;
780 filter.xpinfo.sel.family = preferred_family;
785 xfrm_policy_dir_parse(&filter.xpinfo.dir, &argc, &argv);
791 if (get_u32(&filter.xpinfo.index, *argv, 0))
805 filter.xpinfo.action = XFRM_POLICY_ALLOW;
807 filter.xpinfo.action = XFRM_POLICY_BLOCK;
815 if (get_u32(&filter.xpinfo.priority, *argv, 0))
822 xfrm_policy_flag_parse(&filter.xpinfo.flags, &argc,
832 xfrm_selector_parse(&filter.xpinfo.sel, &argc, &argv);
834 preferred_family = filter.xpinfo.sel.family;