• Home
  • Raw
  • Download

Lines Matching refs:sa

65 static int parse_sockaddr_pair(struct sockaddr *sa, int ext_len,
631 int pfkey_sockaddr_extract(const struct sockaddr *sa, xfrm_address_t *xaddr) in pfkey_sockaddr_extract() argument
633 switch (sa->sa_family) { in pfkey_sockaddr_extract()
636 ((struct sockaddr_in *)sa)->sin_addr.s_addr; in pfkey_sockaddr_extract()
641 &((struct sockaddr_in6 *)sa)->sin6_addr, in pfkey_sockaddr_extract()
658 const struct sadb_sa *sa; in pfkey_xfrm_state_lookup() local
664 sa = ext_hdrs[SADB_EXT_SA - 1]; in pfkey_xfrm_state_lookup()
665 if (sa == NULL) in pfkey_xfrm_state_lookup()
694 return xfrm_state_lookup(net, DUMMY_MARK, xaddr, sa->sadb_sa_spi, proto, family); in pfkey_xfrm_state_lookup()
735 struct sockaddr *sa, in pfkey_sockaddr_fill() argument
741 struct sockaddr_in *sin = (struct sockaddr_in *)sa; in pfkey_sockaddr_fill()
751 struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa; in pfkey_sockaddr_fill()
769 struct sadb_sa *sa; in __pfkey_xfrm_state2msg() local
839 sa = skb_put(skb, sizeof(struct sadb_sa)); in __pfkey_xfrm_state2msg()
840 sa->sadb_sa_len = sizeof(struct sadb_sa)/sizeof(uint64_t); in __pfkey_xfrm_state2msg()
841 sa->sadb_sa_exttype = SADB_EXT_SA; in __pfkey_xfrm_state2msg()
842 sa->sadb_sa_spi = x->id.spi; in __pfkey_xfrm_state2msg()
843 sa->sadb_sa_replay = x->props.replay_window; in __pfkey_xfrm_state2msg()
846 sa->sadb_sa_state = x->km.dying ? in __pfkey_xfrm_state2msg()
850 sa->sadb_sa_state = SADB_SASTATE_LARVAL; in __pfkey_xfrm_state2msg()
853 sa->sadb_sa_state = SADB_SASTATE_DEAD; in __pfkey_xfrm_state2msg()
856 sa->sadb_sa_auth = 0; in __pfkey_xfrm_state2msg()
859 sa->sadb_sa_auth = (a && a->pfkey_supported) ? in __pfkey_xfrm_state2msg()
862 sa->sadb_sa_encrypt = 0; in __pfkey_xfrm_state2msg()
866 sa->sadb_sa_encrypt = (a && a->pfkey_supported) ? in __pfkey_xfrm_state2msg()
872 sa->sadb_sa_encrypt = (a && a->pfkey_supported) ? in __pfkey_xfrm_state2msg()
876 sa->sadb_sa_flags = 0; in __pfkey_xfrm_state2msg()
878 sa->sadb_sa_flags |= SADB_SAFLAGS_NOECN; in __pfkey_xfrm_state2msg()
880 sa->sadb_sa_flags |= SADB_SAFLAGS_DECAP_DSCP; in __pfkey_xfrm_state2msg()
882 sa->sadb_sa_flags |= SADB_SAFLAGS_NOPMTUDISC; in __pfkey_xfrm_state2msg()
1069 const struct sadb_sa *sa; in pfkey_msg2xfrm_state() local
1076 sa = ext_hdrs[SADB_EXT_SA - 1]; in pfkey_msg2xfrm_state()
1077 if (!sa || in pfkey_msg2xfrm_state()
1110 if (sa->sadb_sa_auth > SADB_AALG_MAX || in pfkey_msg2xfrm_state()
1112 sa->sadb_sa_encrypt > SADB_X_CALG_MAX) || in pfkey_msg2xfrm_state()
1113 sa->sadb_sa_encrypt > SADB_EALG_MAX) in pfkey_msg2xfrm_state()
1117 sa->sadb_sa_auth != SADB_X_AALG_NULL && in pfkey_msg2xfrm_state()
1122 sa->sadb_sa_encrypt != SADB_EALG_NULL && in pfkey_msg2xfrm_state()
1131 x->id.spi = sa->sadb_sa_spi; in pfkey_msg2xfrm_state()
1132 x->props.replay_window = min_t(unsigned int, sa->sadb_sa_replay, in pfkey_msg2xfrm_state()
1134 if (sa->sadb_sa_flags & SADB_SAFLAGS_NOECN) in pfkey_msg2xfrm_state()
1136 if (sa->sadb_sa_flags & SADB_SAFLAGS_DECAP_DSCP) in pfkey_msg2xfrm_state()
1138 if (sa->sadb_sa_flags & SADB_SAFLAGS_NOPMTUDISC) in pfkey_msg2xfrm_state()
1172 if (sa->sadb_sa_auth) { in pfkey_msg2xfrm_state()
1174 struct xfrm_algo_desc *a = xfrm_aalg_get_byid(sa->sadb_sa_auth); in pfkey_msg2xfrm_state()
1193 x->props.aalgo = sa->sadb_sa_auth; in pfkey_msg2xfrm_state()
1196 if (sa->sadb_sa_encrypt) { in pfkey_msg2xfrm_state()
1198 struct xfrm_algo_desc *a = xfrm_calg_get_byid(sa->sadb_sa_encrypt); in pfkey_msg2xfrm_state()
1209 x->props.calgo = sa->sadb_sa_encrypt; in pfkey_msg2xfrm_state()
1212 struct xfrm_algo_desc *a = xfrm_ealg_get_byid(sa->sadb_sa_encrypt); in pfkey_msg2xfrm_state()
1231 x->props.ealgo = sa->sadb_sa_encrypt; in pfkey_msg2xfrm_state()
2189 u8 *sa = (void *)(rq + 1); in pfkey_xfrm_policy2msg() local
2191 (struct sockaddr *)sa, in pfkey_xfrm_policy2msg()
2194 (struct sockaddr *) (sa + socklen), in pfkey_xfrm_policy2msg()
2255 struct sadb_address *sa; in pfkey_spdadd() local
2280 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC-1]; in pfkey_spdadd()
2281 xp->family = pfkey_sadb_addr2xfrm_addr(sa, &xp->selector.saddr); in pfkey_spdadd()
2283 xp->selector.prefixlen_s = sa->sadb_address_prefixlen; in pfkey_spdadd()
2284 xp->selector.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_spdadd()
2285 xp->selector.sport = ((struct sockaddr_in *)(sa+1))->sin_port; in pfkey_spdadd()
2289 sa = ext_hdrs[SADB_EXT_ADDRESS_DST-1]; in pfkey_spdadd()
2290 pfkey_sadb_addr2xfrm_addr(sa, &xp->selector.daddr); in pfkey_spdadd()
2291 xp->selector.prefixlen_d = sa->sadb_address_prefixlen; in pfkey_spdadd()
2296 xp->selector.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_spdadd()
2298 xp->selector.dport = ((struct sockaddr_in *)(sa+1))->sin_port; in pfkey_spdadd()
2369 struct sadb_address *sa; in pfkey_spddelete() local
2388 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC-1]; in pfkey_spddelete()
2389 sel.family = pfkey_sadb_addr2xfrm_addr(sa, &sel.saddr); in pfkey_spddelete()
2390 sel.prefixlen_s = sa->sadb_address_prefixlen; in pfkey_spddelete()
2391 sel.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_spddelete()
2392 sel.sport = ((struct sockaddr_in *)(sa+1))->sin_port; in pfkey_spddelete()
2396 sa = ext_hdrs[SADB_EXT_ADDRESS_DST-1]; in pfkey_spddelete()
2397 pfkey_sadb_addr2xfrm_addr(sa, &sel.daddr); in pfkey_spddelete()
2398 sel.prefixlen_d = sa->sadb_address_prefixlen; in pfkey_spddelete()
2399 sel.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_spddelete()
2400 sel.dport = ((struct sockaddr_in *)(sa+1))->sin_port; in pfkey_spddelete()
2477 static int parse_sockaddr_pair(struct sockaddr *sa, int ext_len, in parse_sockaddr_pair() argument
2483 if (ext_len < 2 || ext_len < pfkey_sockaddr_pair_size(sa->sa_family)) in parse_sockaddr_pair()
2486 af = pfkey_sockaddr_extract(sa, saddr); in parse_sockaddr_pair()
2491 if (pfkey_sockaddr_extract((struct sockaddr *) (((u8 *)sa) + socklen), in parse_sockaddr_pair()
2556 struct sadb_address *sa; in pfkey_migrate() local
2596 sa = ext_hdrs[SADB_EXT_ADDRESS_SRC - 1]; in pfkey_migrate()
2597 sel.family = pfkey_sadb_addr2xfrm_addr(sa, &sel.saddr); in pfkey_migrate()
2598 sel.prefixlen_s = sa->sadb_address_prefixlen; in pfkey_migrate()
2599 sel.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_migrate()
2600 sel.sport = ((struct sockaddr_in *)(sa + 1))->sin_port; in pfkey_migrate()
2605 sa = ext_hdrs[SADB_EXT_ADDRESS_DST - 1]; in pfkey_migrate()
2606 pfkey_sadb_addr2xfrm_addr(sa, &sel.daddr); in pfkey_migrate()
2607 sel.prefixlen_d = sa->sadb_address_prefixlen; in pfkey_migrate()
2608 sel.proto = pfkey_proto_to_xfrm(sa->sadb_address_proto); in pfkey_migrate()
2609 sel.dport = ((struct sockaddr_in *)(sa + 1))->sin_port; in pfkey_migrate()
3362 struct sadb_sa *sa; in pfkey_send_new_mapping() local
3409 sa = skb_put(skb, sizeof(struct sadb_sa)); in pfkey_send_new_mapping()
3410 sa->sadb_sa_len = sizeof(struct sadb_sa)/sizeof(uint64_t); in pfkey_send_new_mapping()
3411 sa->sadb_sa_exttype = SADB_EXT_SA; in pfkey_send_new_mapping()
3412 sa->sadb_sa_spi = x->id.spi; in pfkey_send_new_mapping()
3413 sa->sadb_sa_replay = 0; in pfkey_send_new_mapping()
3414 sa->sadb_sa_state = 0; in pfkey_send_new_mapping()
3415 sa->sadb_sa_auth = 0; in pfkey_send_new_mapping()
3416 sa->sadb_sa_encrypt = 0; in pfkey_send_new_mapping()
3417 sa->sadb_sa_flags = 0; in pfkey_send_new_mapping()
3502 u8 *sa; in set_sadb_kmaddress() local
3515 sa = (u8 *)(kma + 1); in set_sadb_kmaddress()
3516 if (!pfkey_sockaddr_fill(&k->local, 0, (struct sockaddr *)sa, family) || in set_sadb_kmaddress()
3517 !pfkey_sockaddr_fill(&k->remote, 0, (struct sockaddr *)(sa+socklen), family)) in set_sadb_kmaddress()
3529 u8 *sa; in set_ipsecrequest() local
3543 sa = (u8 *) (rq + 1); in set_ipsecrequest()
3544 if (!pfkey_sockaddr_fill(src, 0, (struct sockaddr *)sa, family) || in set_ipsecrequest()
3545 !pfkey_sockaddr_fill(dst, 0, (struct sockaddr *)(sa + socklen), family)) in set_ipsecrequest()