Lines Matching refs:addr
379 const struct sockaddr *addr = (const struct sockaddr *)(sp + 1);
387 DIV_ROUND_UP(sizeof(*sp) + offsetofend(typeof(*addr), sa_family),
391 switch (addr->sa_family) {
646 int pfkey_sadb_addr2xfrm_addr(const struct sadb_address *addr, xfrm_address_t *xaddr)
648 return pfkey_sockaddr_extract((struct sockaddr *)(addr + 1),
655 const struct sadb_address *addr;
669 addr = ext_hdrs[SADB_EXT_ADDRESS_DST - 1];
670 if (addr == NULL)
673 family = ((const struct sockaddr *)(addr + 1))->sa_family;
676 xaddr = (xfrm_address_t *)&((const struct sockaddr_in *)(addr + 1))->sin_addr;
680 xaddr = (xfrm_address_t *)&((const struct sockaddr_in6 *)(addr + 1))->sin6_addr;
767 struct sadb_address *addr;
912 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
913 addr->sadb_address_len =
916 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
920 addr->sadb_address_proto = 0;
921 addr->sadb_address_reserved = 0;
923 addr->sadb_address_prefixlen =
925 (struct sockaddr *) (addr + 1),
927 BUG_ON(!addr->sadb_address_prefixlen);
930 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
931 addr->sadb_address_len =
934 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
935 addr->sadb_address_proto = 0;
936 addr->sadb_address_reserved = 0;
938 addr->sadb_address_prefixlen =
940 (struct sockaddr *) (addr + 1),
942 BUG_ON(!addr->sadb_address_prefixlen);
946 addr = skb_put(skb,
948 addr->sadb_address_len =
951 addr->sadb_address_exttype = SADB_EXT_ADDRESS_PROXY;
952 addr->sadb_address_proto =
954 addr->sadb_address_prefixlen = x->sel.prefixlen_s;
955 addr->sadb_address_reserved = 0;
958 (struct sockaddr *) (addr + 1),
1250 const struct sadb_address *addr = ext_hdrs[SADB_EXT_ADDRESS_PROXY-1];
1253 x->sel.family = pfkey_sadb_addr2xfrm_addr(addr, &x->sel.saddr);
1254 x->sel.prefixlen_s = addr->sadb_address_prefixlen;
2067 struct sadb_address *addr;
2084 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
2085 addr->sadb_address_len =
2088 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
2089 addr->sadb_address_proto = pfkey_proto_from_xfrm(xp->selector.proto);
2090 addr->sadb_address_prefixlen = xp->selector.prefixlen_s;
2091 addr->sadb_address_reserved = 0;
2094 (struct sockaddr *) (addr + 1),
2099 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
2100 addr->sadb_address_len =
2103 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
2104 addr->sadb_address_proto = pfkey_proto_from_xfrm(xp->selector.proto);
2105 addr->sadb_address_prefixlen = xp->selector.prefixlen_d;
2106 addr->sadb_address_reserved = 0;
2109 (struct sockaddr *) (addr + 1),
3157 struct sadb_address *addr;
3200 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3201 addr->sadb_address_len =
3204 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
3205 addr->sadb_address_proto = 0;
3206 addr->sadb_address_reserved = 0;
3207 addr->sadb_address_prefixlen =
3209 (struct sockaddr *) (addr + 1),
3211 if (!addr->sadb_address_prefixlen)
3215 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3216 addr->sadb_address_len =
3219 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
3220 addr->sadb_address_proto = 0;
3221 addr->sadb_address_reserved = 0;
3222 addr->sadb_address_prefixlen =
3224 (struct sockaddr *) (addr + 1),
3226 if (!addr->sadb_address_prefixlen)
3358 struct sadb_address *addr;
3379 * HDR | SA | ADDRESS_SRC (old addr) | NAT_T_SPORT (old port) |
3380 * ADDRESS_DST (new addr) | NAT_T_DPORT (new port)
3414 /* ADDRESS_SRC (old addr) */
3415 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3416 addr->sadb_address_len =
3419 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
3420 addr->sadb_address_proto = 0;
3421 addr->sadb_address_reserved = 0;
3422 addr->sadb_address_prefixlen =
3424 (struct sockaddr *) (addr + 1),
3426 if (!addr->sadb_address_prefixlen)
3436 /* ADDRESS_DST (new addr) */
3437 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3438 addr->sadb_address_len =
3441 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
3442 addr->sadb_address_proto = 0;
3443 addr->sadb_address_reserved = 0;
3444 addr->sadb_address_prefixlen =
3446 (struct sockaddr *) (addr + 1),
3448 if (!addr->sadb_address_prefixlen)
3466 struct sadb_address *addr;
3467 addr = skb_put(skb, sizeof(struct sadb_address) + sasize);
3468 addr->sadb_address_len = (sizeof(struct sadb_address) + sasize)/8;
3469 addr->sadb_address_exttype = type;
3470 addr->sadb_address_proto = sel->proto;
3471 addr->sadb_address_reserved = 0;
3475 addr->sadb_address_prefixlen = sel->prefixlen_s;
3477 (struct sockaddr *)(addr + 1),
3481 addr->sadb_address_prefixlen = sel->prefixlen_d;
3483 (struct sockaddr *)(addr + 1),