Lines Matching refs:pol
1942 parse_ipsecrequest(struct xfrm_policy *xp, struct sadb_x_policy *pol,
1963 pol->sadb_x_policy_dir == IPSEC_DIR_OUTBOUND)
1994 parse_ipsecrequests(struct xfrm_policy *xp, struct sadb_x_policy *pol)
1997 int len = pol->sadb_x_policy_len*8 - sizeof(struct sadb_x_policy);
1998 struct sadb_x_ipsecrequest *rq = (void*)(pol+1);
2000 if (pol->sadb_x_policy_len * 8 < sizeof(struct sadb_x_policy))
2008 if ((err = parse_ipsecrequest(xp, pol, rq)) < 0)
2069 struct sadb_x_policy *pol;
2140 pol = skb_put(skb, sizeof(struct sadb_x_policy));
2141 pol->sadb_x_policy_len = sizeof(struct sadb_x_policy)/sizeof(uint64_t);
2142 pol->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
2143 pol->sadb_x_policy_type = IPSEC_POLICY_DISCARD;
2146 pol->sadb_x_policy_type = IPSEC_POLICY_IPSEC;
2148 pol->sadb_x_policy_type = IPSEC_POLICY_NONE;
2150 pol->sadb_x_policy_dir = dir+1;
2151 pol->sadb_x_policy_reserved = 0;
2152 pol->sadb_x_policy_id = xp->index;
2153 pol->sadb_x_policy_priority = xp->priority;
2169 pol->sadb_x_policy_len += req_size/8;
2251 struct sadb_x_policy *pol;
2261 pol = ext_hdrs[SADB_X_EXT_POLICY-1];
2262 if (pol->sadb_x_policy_type > IPSEC_POLICY_IPSEC)
2264 if (!pol->sadb_x_policy_dir || pol->sadb_x_policy_dir >= IPSEC_DIR_MAX)
2271 xp->action = (pol->sadb_x_policy_type == IPSEC_POLICY_DISCARD ?
2273 xp->priority = pol->sadb_x_policy_priority;
2330 if (pol->sadb_x_policy_type == IPSEC_POLICY_IPSEC &&
2331 (err = parse_ipsecrequests(xp, pol)) < 0)
2334 err = xfrm_policy_insert(pol->sadb_x_policy_dir-1, xp,
2350 km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);
2365 struct sadb_x_policy *pol;
2377 pol = ext_hdrs[SADB_X_EXT_POLICY-1];
2378 if (!pol->sadb_x_policy_dir || pol->sadb_x_policy_dir >= IPSEC_DIR_MAX)
2413 pol->sadb_x_policy_dir - 1, &sel, pol_ctx,
2428 km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);
2553 struct sadb_x_policy *pol;
2568 pol = ext_hdrs[SADB_X_EXT_POLICY - 1];
2570 if (pol->sadb_x_policy_dir >= IPSEC_DIR_MAX) {
2587 dir = pol->sadb_x_policy_dir - 1;
2608 rq = (struct sadb_x_ipsecrequest *)(pol + 1);
2612 len = pol->sadb_x_policy_len * 8 - sizeof(struct sadb_x_policy);
2651 struct sadb_x_policy *pol;
2655 if ((pol = ext_hdrs[SADB_X_EXT_POLICY-1]) == NULL)
2658 dir = xfrm_policy_id2dir(pol->sadb_x_policy_id);
2664 dir, pol->sadb_x_policy_id, delete, &err);
3158 struct sadb_x_policy *pol;
3229 pol = skb_put(skb, sizeof(struct sadb_x_policy));
3230 pol->sadb_x_policy_len = sizeof(struct sadb_x_policy)/sizeof(uint64_t);
3231 pol->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
3232 pol->sadb_x_policy_type = IPSEC_POLICY_IPSEC;
3233 pol->sadb_x_policy_dir = XFRM_POLICY_OUT + 1;
3234 pol->sadb_x_policy_reserved = 0;
3235 pol->sadb_x_policy_id = xp->index;
3236 pol->sadb_x_policy_priority = xp->priority;
3270 struct sadb_x_policy *pol = (struct sadb_x_policy*)data;
3296 pol->sadb_x_policy_len*8 > len ||
3297 pol->sadb_x_policy_type > IPSEC_POLICY_BYPASS ||
3298 (!pol->sadb_x_policy_dir || pol->sadb_x_policy_dir > IPSEC_DIR_OUTBOUND))
3307 xp->action = (pol->sadb_x_policy_type == IPSEC_POLICY_DISCARD ?
3317 if (pol->sadb_x_policy_type == IPSEC_POLICY_IPSEC &&
3318 (*dir = parse_ipsecrequests(xp, pol)) < 0)
3322 if (len >= (pol->sadb_x_policy_len*8 +
3324 char *p = (char *)pol;
3327 p += pol->sadb_x_policy_len*8;
3329 if (len < pol->sadb_x_policy_len*8 +
3344 *dir = pol->sadb_x_policy_dir-1;
3559 struct sadb_x_policy *pol;
3621 pol = skb_put(skb, sizeof(struct sadb_x_policy));
3622 pol->sadb_x_policy_len = size_pol / 8;
3623 pol->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
3624 pol->sadb_x_policy_type = IPSEC_POLICY_IPSEC;
3625 pol->sadb_x_policy_dir = dir + 1;
3626 pol->sadb_x_policy_reserved = 0;
3627 pol->sadb_x_policy_id = 0;
3628 pol->sadb_x_policy_priority = 0;