Lines Matching defs:saidx

109 static int ipsec_encap(struct mbuf **mp, struct secasindex *saidx);
117 struct secasindex *saidx, tmpsaidx;
127 if ((isr->saidx.proto == IPPROTO_ESP && !V_esp_enable) ||
128 (isr->saidx.proto == IPPROTO_AH && !V_ah_enable) ||
129 (isr->saidx.proto == IPPROTO_IPCOMP && !V_ipcomp_enable)) {
132 IPSEC_OSTAT_INC(isr->saidx.proto, pdrops);
141 if (isr->saidx.mode == IPSEC_MODE_TRANSPORT) {
142 saidx = &tmpsaidx;
143 *saidx = isr->saidx;
144 if (saidx->src.sa.sa_len == 0) {
145 sin = &saidx->src.sin;
151 if (saidx->dst.sa.sa_len == 0) {
152 sin = &saidx->dst.sin;
159 saidx = &sp->req[*pidx]->saidx;
163 sav = key_allocsa_policy(sp, saidx, error);
262 dst = &sav->sah->saidx.dst;
264 if (sp->req[idx]->saidx.mode == IPSEC_MODE_TUNNEL || /* Tunnel requ'd */
273 error = ipsec_encap(&m, &sav->sah->saidx);
312 IPSEC_OSTAT_INC(sav->sah->saidx.proto, nopf);
542 struct secasindex *saidx, tmpsaidx;
553 if ((isr->saidx.proto == IPPROTO_ESP && !V_esp_enable) ||
554 (isr->saidx.proto == IPPROTO_AH && !V_ah_enable) ||
555 (isr->saidx.proto == IPPROTO_IPCOMP && !V_ipcomp_enable)) {
558 IPSEC_OSTAT_INC(isr->saidx.proto, pdrops);
567 if (isr->saidx.mode == IPSEC_MODE_TRANSPORT) {
568 saidx = &tmpsaidx;
569 *saidx = isr->saidx;
571 if (saidx->src.sin6.sin6_len == 0) {
572 sin6 = (struct sockaddr_in6 *)&saidx->src;
584 if (saidx->dst.sin6.sin6_len == 0) {
585 sin6 = (struct sockaddr_in6 *)&saidx->dst;
598 saidx = &sp->req[*pidx]->saidx;
602 sav = key_allocsa_policy(sp, saidx, error);
682 dst = &sav->sah->saidx.dst;
685 if (sp->req[idx]->saidx.mode == IPSEC_MODE_TUNNEL || /* Tunnel requ'd */
695 error = ipsec_encap(&m, &sav->sah->saidx);
729 IPSEC_OSTAT_INC(sav->sah->saidx.proto, nopf);
907 struct secasindex *saidx;
918 saidx = &sav->sah->saidx;
919 switch (saidx->dst.sa.sa_family) {
945 saidx->dst.sa.sa_family));
961 xh->dst = saidx->dst;
962 xh->proto = saidx->proto;
963 xh->mode = saidx->mode;
977 switch (saidx->dst.sa.sa_family) {
996 saidx->dst.sa.sa_family));
1018 switch (saidx->dst.sa.sa_family) {
1097 dst = &sav->sah->saidx.dst;
1144 ipsec_encap(struct mbuf **mp, struct secasindex *saidx)
1182 switch (saidx->dst.sa.sa_family) {
1185 if (saidx->src.sa.sa_family != AF_INET ||
1186 saidx->src.sin.sin_addr.s_addr == INADDR_ANY ||
1187 saidx->dst.sin.sin_addr.s_addr == INADDR_ANY)
1200 ip->ip_src = saidx->src.sin.sin_addr;
1201 ip->ip_dst = saidx->dst.sin.sin_addr;
1208 if (saidx->src.sa.sa_family != AF_INET6 ||
1209 IN6_IS_ADDR_UNSPECIFIED(&saidx->src.sin6.sin6_addr) ||
1210 IN6_IS_ADDR_UNSPECIFIED(&saidx->dst.sin6.sin6_addr))
1220 ip6->ip6_dst = saidx->dst.sin6.sin6_addr;
1224 htons(saidx->dst.sin6.sin6_scope_id & 0xffff);
1225 ip6->ip6_src = saidx->src.sin6.sin6_addr;
1228 htons(saidx->src.sin6.sin6_scope_id & 0xffff);