Lines Matching refs:addr
383 const struct sockaddr *addr = (const struct sockaddr *)(sp + 1);
391 DIV_ROUND_UP(sizeof(*sp) + offsetofend(typeof(*addr), sa_family),
395 switch (addr->sa_family) {
650 int pfkey_sadb_addr2xfrm_addr(const struct sadb_address *addr, xfrm_address_t *xaddr)
652 return pfkey_sockaddr_extract((struct sockaddr *)(addr + 1),
659 const struct sadb_address *addr;
673 addr = ext_hdrs[SADB_EXT_ADDRESS_DST - 1];
674 if (addr == NULL)
677 family = ((const struct sockaddr *)(addr + 1))->sa_family;
680 xaddr = (xfrm_address_t *)&((const struct sockaddr_in *)(addr + 1))->sin_addr;
684 xaddr = (xfrm_address_t *)&((const struct sockaddr_in6 *)(addr + 1))->sin6_addr;
771 struct sadb_address *addr;
916 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
917 addr->sadb_address_len =
920 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
924 addr->sadb_address_proto = 0;
925 addr->sadb_address_reserved = 0;
927 addr->sadb_address_prefixlen =
929 (struct sockaddr *) (addr + 1),
931 BUG_ON(!addr->sadb_address_prefixlen);
934 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
935 addr->sadb_address_len =
938 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
939 addr->sadb_address_proto = 0;
940 addr->sadb_address_reserved = 0;
942 addr->sadb_address_prefixlen =
944 (struct sockaddr *) (addr + 1),
946 BUG_ON(!addr->sadb_address_prefixlen);
950 addr = skb_put(skb,
952 addr->sadb_address_len =
955 addr->sadb_address_exttype = SADB_EXT_ADDRESS_PROXY;
956 addr->sadb_address_proto =
958 addr->sadb_address_prefixlen = x->sel.prefixlen_s;
959 addr->sadb_address_reserved = 0;
962 (struct sockaddr *) (addr + 1),
1254 const struct sadb_address *addr = ext_hdrs[SADB_EXT_ADDRESS_PROXY-1];
1257 x->sel.family = pfkey_sadb_addr2xfrm_addr(addr, &x->sel.saddr);
1258 x->sel.prefixlen_s = addr->sadb_address_prefixlen;
2072 struct sadb_address *addr;
2089 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
2090 addr->sadb_address_len =
2093 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
2094 addr->sadb_address_proto = pfkey_proto_from_xfrm(xp->selector.proto);
2095 addr->sadb_address_prefixlen = xp->selector.prefixlen_s;
2096 addr->sadb_address_reserved = 0;
2099 (struct sockaddr *) (addr + 1),
2104 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
2105 addr->sadb_address_len =
2108 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
2109 addr->sadb_address_proto = pfkey_proto_from_xfrm(xp->selector.proto);
2110 addr->sadb_address_prefixlen = xp->selector.prefixlen_d;
2111 addr->sadb_address_reserved = 0;
2114 (struct sockaddr *) (addr + 1),
3162 struct sadb_address *addr;
3205 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3206 addr->sadb_address_len =
3209 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
3210 addr->sadb_address_proto = 0;
3211 addr->sadb_address_reserved = 0;
3212 addr->sadb_address_prefixlen =
3214 (struct sockaddr *) (addr + 1),
3216 if (!addr->sadb_address_prefixlen)
3220 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3221 addr->sadb_address_len =
3224 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
3225 addr->sadb_address_proto = 0;
3226 addr->sadb_address_reserved = 0;
3227 addr->sadb_address_prefixlen =
3229 (struct sockaddr *) (addr + 1),
3231 if (!addr->sadb_address_prefixlen)
3363 struct sadb_address *addr;
3384 * HDR | SA | ADDRESS_SRC (old addr) | NAT_T_SPORT (old port) |
3385 * ADDRESS_DST (new addr) | NAT_T_DPORT (new port)
3419 /* ADDRESS_SRC (old addr) */
3420 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3421 addr->sadb_address_len =
3424 addr->sadb_address_exttype = SADB_EXT_ADDRESS_SRC;
3425 addr->sadb_address_proto = 0;
3426 addr->sadb_address_reserved = 0;
3427 addr->sadb_address_prefixlen =
3429 (struct sockaddr *) (addr + 1),
3431 if (!addr->sadb_address_prefixlen)
3441 /* ADDRESS_DST (new addr) */
3442 addr = skb_put(skb, sizeof(struct sadb_address) + sockaddr_size);
3443 addr->sadb_address_len =
3446 addr->sadb_address_exttype = SADB_EXT_ADDRESS_DST;
3447 addr->sadb_address_proto = 0;
3448 addr->sadb_address_reserved = 0;
3449 addr->sadb_address_prefixlen =
3451 (struct sockaddr *) (addr + 1),
3453 if (!addr->sadb_address_prefixlen)
3471 struct sadb_address *addr;
3472 addr = skb_put(skb, sizeof(struct sadb_address) + sasize);
3473 addr->sadb_address_len = (sizeof(struct sadb_address) + sasize)/8;
3474 addr->sadb_address_exttype = type;
3475 addr->sadb_address_proto = sel->proto;
3476 addr->sadb_address_reserved = 0;
3480 addr->sadb_address_prefixlen = sel->prefixlen_s;
3482 (struct sockaddr *)(addr + 1),
3486 addr->sadb_address_prefixlen = sel->prefixlen_d;
3488 (struct sockaddr *)(addr + 1),