Lines Matching refs:ext_hdrs

507 static int parse_exthdrs(struct sk_buff *skb, const struct sadb_msg *hdr, void **ext_hdrs)
534 if (ext_hdrs[ext_type-1] != NULL)
556 ext_hdrs[ext_type-1] = (void *) p;
652 static struct xfrm_state *pfkey_xfrm_state_lookup(struct net *net, const struct sadb_msg *hdr, void * const *ext_hdrs)
660 sa = ext_hdrs[SADB_EXT_SA - 1];
669 addr = ext_hdrs[SADB_EXT_ADDRESS_DST - 1];
1061 void * const *ext_hdrs)
1072 sa = ext_hdrs[SADB_EXT_SA - 1];
1074 !present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
1075 ext_hdrs[SADB_EXT_ADDRESS_DST-1]))
1078 !ext_hdrs[SADB_EXT_KEY_ENCRYPT-1])
1081 !ext_hdrs[SADB_EXT_KEY_AUTH-1])
1083 if (!!ext_hdrs[SADB_EXT_LIFETIME_HARD-1] !=
1084 !!ext_hdrs[SADB_EXT_LIFETIME_SOFT-1])
1111 key = ext_hdrs[SADB_EXT_KEY_AUTH - 1];
1116 key = ext_hdrs[SADB_EXT_KEY_ENCRYPT-1];
1137 lifetime = ext_hdrs[SADB_EXT_LIFETIME_HARD - 1];
1144 lifetime = ext_hdrs[SADB_EXT_LIFETIME_SOFT - 1];
1152 sec_ctx = ext_hdrs[SADB_X_EXT_SEC_CTX - 1];
1167 key = ext_hdrs[SADB_EXT_KEY_AUTH - 1];
1213 key = (struct sadb_key*) ext_hdrs[SADB_EXT_KEY_ENCRYPT-1];
1233 x->props.family = pfkey_sadb_addr2xfrm_addr((struct sadb_address *) ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
1235 pfkey_sadb_addr2xfrm_addr((struct sadb_address *) ext_hdrs[SADB_EXT_ADDRESS_DST-1],
1238 if (ext_hdrs[SADB_X_EXT_SA2-1]) {
1239 const struct sadb_x_sa2 *sa2 = ext_hdrs[SADB_X_EXT_SA2-1];
1249 if (ext_hdrs[SADB_EXT_ADDRESS_PROXY-1]) {
1250 const struct sadb_address *addr = ext_hdrs[SADB_EXT_ADDRESS_PROXY-1];
1260 if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) {
1271 n_type = ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1];
1274 if (ext_hdrs[SADB_X_EXT_NAT_T_SPORT-1]) {
1276 ext_hdrs[SADB_X_EXT_NAT_T_SPORT-1];
1279 if (ext_hdrs[SADB_X_EXT_NAT_T_DPORT-1]) {
1281 ext_hdrs[SADB_X_EXT_NAT_T_DPORT-1];
1299 static int pfkey_reserved(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1304 static int pfkey_getspi(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1321 if (!present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
1322 ext_hdrs[SADB_EXT_ADDRESS_DST-1]))
1329 if ((sa2 = ext_hdrs[SADB_X_EXT_SA2-1]) != NULL) {
1339 saddr = ext_hdrs[SADB_EXT_ADDRESS_SRC-1];
1340 daddr = ext_hdrs[SADB_EXT_ADDRESS_DST-1];
1374 range = ext_hdrs[SADB_EXT_SPIRANGE-1];
1410 static int pfkey_acquire(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1497 static int pfkey_add(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1504 x = pfkey_msg2xfrm_state(net, hdr, ext_hdrs);
1534 static int pfkey_delete(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1541 if (!ext_hdrs[SADB_EXT_SA-1] ||
1542 !present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
1543 ext_hdrs[SADB_EXT_ADDRESS_DST-1]))
1546 x = pfkey_xfrm_state_lookup(net, hdr, ext_hdrs);
1574 static int pfkey_get(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1582 if (!ext_hdrs[SADB_EXT_SA-1] ||
1583 !present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
1584 ext_hdrs[SADB_EXT_ADDRESS_DST-1]))
1587 x = pfkey_xfrm_state_lookup(net, hdr, ext_hdrs);
1686 static int pfkey_register(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1758 static int pfkey_flush(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1830 static int pfkey_dump(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
1848 if (ext_hdrs[SADB_X_EXT_FILTER - 1]) {
1849 struct sadb_x_filter *xfilter = ext_hdrs[SADB_X_EXT_FILTER - 1];
1883 static int pfkey_promisc(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2246 static int pfkey_spdadd(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2257 if (!present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
2258 ext_hdrs[SADB_EXT_ADDRESS_DST-1]) ||
2259 !ext_hdrs[SADB_X_EXT_POLICY-1])
2262 pol = ext_hdrs[SADB_X_EXT_POLICY-1];
2276 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC-1];
2285 sa = ext_hdrs[SADB_EXT_ADDRESS_DST-1];
2298 sec_ctx = ext_hdrs[SADB_X_EXT_SEC_CTX - 1];
2318 if ((lifetime = ext_hdrs[SADB_EXT_LIFETIME_HARD-1]) != NULL) {
2324 if ((lifetime = ext_hdrs[SADB_EXT_LIFETIME_SOFT-1]) != NULL) {
2361 static int pfkey_spddelete(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2373 if (!present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC-1],
2374 ext_hdrs[SADB_EXT_ADDRESS_DST-1]) ||
2375 !ext_hdrs[SADB_X_EXT_POLICY-1])
2378 pol = ext_hdrs[SADB_X_EXT_POLICY-1];
2384 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC-1];
2392 sa = ext_hdrs[SADB_EXT_ADDRESS_DST-1];
2400 sec_ctx = ext_hdrs[SADB_X_EXT_SEC_CTX - 1];
2548 const struct sadb_msg *hdr, void * const *ext_hdrs)
2561 if (!present_and_same_family(ext_hdrs[SADB_EXT_ADDRESS_SRC - 1],
2562 ext_hdrs[SADB_EXT_ADDRESS_DST - 1]) ||
2563 !ext_hdrs[SADB_X_EXT_POLICY - 1]) {
2568 kma = ext_hdrs[SADB_X_EXT_KMADDRESS - 1];
2569 pol = ext_hdrs[SADB_X_EXT_POLICY - 1];
2592 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC - 1];
2601 sa = ext_hdrs[SADB_EXT_ADDRESS_DST - 1];
2640 const struct sadb_msg *hdr, void * const *ext_hdrs)
2647 static int pfkey_spdget(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2656 if ((pol = ext_hdrs[SADB_X_EXT_POLICY-1]) == NULL)
2737 static int pfkey_spddump(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2779 static int pfkey_spdflush(struct sock *sk, struct sk_buff *skb, const struct sadb_msg *hdr, void * const *ext_hdrs)
2804 const struct sadb_msg *hdr, void * const *ext_hdrs);
2833 void *ext_hdrs[SADB_EXT_MAX];
2843 memset(ext_hdrs, 0, sizeof(ext_hdrs));
2844 err = parse_exthdrs(skb, hdr, ext_hdrs);
2848 err = pfkey_funcs[hdr->sadb_msg_type](sk, skb, hdr, ext_hdrs);