Lines Matching defs:spidx
194 struct secpolicyindex spidx;
223 if (ipsec_setspidx(m, &spidx, dir, 1) != 0) {
233 if (memcmp(&pcbsp->sp_cache[dir].cacheidx, &spidx,
234 sizeof(spidx))) {
244 * to generate spidx again, nor check the address match again.
470 sp = KEY_LOOKUP_SP_BYSPIDX(&currsp->spidx, dir);
485 sp = KEY_LOOKUP_SP_BYSPIDX(&currsp->spidx, dir);
536 struct secpolicyindex spidx;
546 *error = ipsec_setspidx(m, &spidx, dir, 1);
549 memset(&spidx, 0, sizeof(spidx));
553 spidx.dir = dir;
556 sp = KEY_LOOKUP_SP_BYSPIDX(&spidx, dir);
560 sp = KEY_GET_DEFAULT_SP(spidx.dst.sa.sa_family);
790 error = ipsec_setspidx(m, &inp->inp_sp->sp_in->spidx,
793 inp->inp_sp->sp_out->spidx = inp->inp_sp->sp_in->spidx;
794 inp->inp_sp->sp_out->spidx.dir = IPSEC_DIR_OUTBOUND;
796 memset(&inp->inp_sp->sp_in->spidx, 0,
797 sizeof(inp->inp_sp->sp_in->spidx));
798 memset(&inp->inp_sp->sp_out->spidx, 0,
799 sizeof(inp->inp_sp->sp_out->spidx));
807 * the caller is responsible for error recovery (like clearing up spidx).
810 ipsec_setspidx(struct mbuf *m, struct secpolicyindex *spidx, int dir,
828 memset(spidx, 0, sizeof(*spidx));
829 spidx->dir = dir;
840 error = ipsec4_setspidx_ipaddr(m, spidx);
843 ipsec4_get_ulp(m, spidx, needport);
853 error = ipsec6_setspidx_ipaddr(m, spidx);
856 ipsec6_get_ulp(m, spidx, needport);
867 ipsec4_get_ulp(struct mbuf *m, struct secpolicyindex *spidx, int needport)
900 spidx->ul_proto = nxt;
906 spidx->src.sin.sin_port = th.th_sport;
907 spidx->dst.sin.sin_port = th.th_dport;
910 spidx->ul_proto = nxt;
916 spidx->src.sin.sin_port = uh.uh_sport;
917 spidx->dst.sin.sin_port = uh.uh_dport;
928 spidx->ul_proto = nxt;
932 ((struct sockaddr_in *)&spidx->src)->sin_port =
934 ((struct sockaddr_in *)&spidx->dst)->sin_port =
939 spidx->ul_proto = nxt;
944 spidx->ul_proto = IPSEC_ULPROTO_ANY;
946 spidx->src.sin.sin_port = IPSEC_PORT_ANY;
947 spidx->dst.sin.sin_port = IPSEC_PORT_ANY;
951 ipsec4_setspidx_ipaddr(struct mbuf *m, struct secpolicyindex *spidx)
959 spidx->src.sin = template;
960 spidx->dst.sin = template;
964 sizeof(struct in_addr), &spidx->src.sin.sin_addr);
966 sizeof(struct in_addr), &spidx->dst.sin.sin_addr);
969 spidx->src.sin.sin_addr = ip->ip_src;
970 spidx->dst.sin.sin_addr = ip->ip_dst;
973 spidx->prefs = sizeof(struct in_addr) << 3;
974 spidx->prefd = sizeof(struct in_addr) << 3;
981 ipsec6_get_ulp(struct mbuf *m, struct secpolicyindex *spidx, int needport)
995 spidx->ul_proto = IPSEC_ULPROTO_ANY;
996 ((struct sockaddr_in6 *)&spidx->src)->sin6_port = IPSEC_PORT_ANY;
997 ((struct sockaddr_in6 *)&spidx->dst)->sin6_port = IPSEC_PORT_ANY;
1006 spidx->ul_proto = nxt;
1012 ((struct sockaddr_in6 *)&spidx->src)->sin6_port = th.th_sport;
1013 ((struct sockaddr_in6 *)&spidx->dst)->sin6_port = th.th_dport;
1016 spidx->ul_proto = nxt;
1022 ((struct sockaddr_in6 *)&spidx->src)->sin6_port = uh.uh_sport;
1023 ((struct sockaddr_in6 *)&spidx->dst)->sin6_port = uh.uh_dport;
1026 spidx->ul_proto = nxt;
1030 ((struct sockaddr_in6 *)&spidx->src)->sin6_port =
1032 ((struct sockaddr_in6 *)&spidx->dst)->sin6_port =
1037 spidx->ul_proto = nxt;
1043 ipsec6_setspidx_ipaddr(struct mbuf *m, struct secpolicyindex *spidx)
1056 sin6 = (struct sockaddr_in6 *)&spidx->src;
1065 spidx->prefs = sizeof(struct in6_addr) << 3;
1067 sin6 = (struct sockaddr_in6 *)&spidx->dst;
1076 spidx->prefd = sizeof(struct in6_addr) << 3;
1294 isr->sp->spidx.src.sa.sa_family == isr->sp->spidx.dst.sa.sa_family,
1296 isr->sp->spidx.src.sa.sa_family, isr->sp->spidx.dst.sa.sa_family);
1308 switch (((struct sockaddr *)&isr->sp->spidx.src)->sa_family) {
1327 isr->sp->spidx.src.sa.sa_family);