IPSEC_DIR_OUTBOUND
case IPSEC_DIR_OUTBOUND:
if (p_dir != IPSEC_DIR_OUTBOUND) {
ifp, sav, IPSEC_DIR_OUTBOUND, dev_spi, &pb->priv_out, pb, ifpo);
if (spidx->dir != IPSEC_DIR_INBOUND && spidx->dir != IPSEC_DIR_OUTBOUND) {
IPSEC_DIR_OUTBOUND, &flow_act);
if (sa_entry->attrs.dir == IPSEC_DIR_OUTBOUND)
if (sa_entry->attrs.dir == IPSEC_DIR_OUTBOUND) {
if (pol_entry->attrs.dir == IPSEC_DIR_OUTBOUND)
case IPSEC_DIR_OUTBOUND:
case IPSEC_DIR_OUTBOUND:
saidx = ipsec_getsaidx(sc, IPSEC_DIR_OUTBOUND, sc->family);
saidx = ipsec_getsaidx(sc, IPSEC_DIR_OUTBOUND,
sp = ipsec_getpolicy(sc, IPSEC_DIR_OUTBOUND, af);
saidx = ipsec_getsaidx(sc, IPSEC_DIR_OUTBOUND, sc->family);
saidx = ipsec_getsaidx(sc, IPSEC_DIR_OUTBOUND, sc->family);
saidx = ipsec_getsaidx(sc, IPSEC_DIR_OUTBOUND, sa->sa_family);
sp[i]->spidx.dir = IPSEC_DIR_OUTBOUND;
sp = ipsec_getpcbpolicy(inp, IPSEC_DIR_OUTBOUND);
if (sp == NULL && key_havesp(IPSEC_DIR_OUTBOUND)) {
ipsec_setspidx_inpcb(inp, &spidx, IPSEC_DIR_OUTBOUND);
sp = key_allocsp(&spidx, IPSEC_DIR_OUTBOUND);
if (dir == IPSEC_DIR_OUTBOUND) {
if (dir == IPSEC_DIR_OUTBOUND) {
if (dir == IPSEC_DIR_OUTBOUND)
__func__, inp, dir == IPSEC_DIR_OUTBOUND ? "OUTBOUND":
ipsec_cachepolicy(inp, sp, IPSEC_DIR_OUTBOUND);
if (dir == IPSEC_DIR_OUTBOUND) {
ipsec_invalidate_cache(inp, IPSEC_DIR_OUTBOUND);
sp = ipsec4_getpolicy(m, inp, ip1, IPSEC_DIR_OUTBOUND, needport);
sp = ipsec6_getpolicy(m, inp, IPSEC_DIR_OUTBOUND, needport);
if (dir == IPSEC_DIR_OUTBOUND)
if (dir == IPSEC_DIR_OUTBOUND)
ipsec_setspidx_inpcb(new, &sp->spidx, IPSEC_DIR_OUTBOUND);
case IPSEC_DIR_OUTBOUND:
case IPSEC_DIR_OUTBOUND:
if (dir == IPSEC_DIR_OUTBOUND)
if (dir == IPSEC_DIR_OUTBOUND)
sp->spidx.dir == IPSEC_DIR_OUTBOUND,
spp[i]->spidx.dir == IPSEC_DIR_OUTBOUND,
spp[i]->spidx.dir == IPSEC_DIR_OUTBOUND,
case IPSEC_DIR_OUTBOUND:
case IPSEC_DIR_OUTBOUND:
IPSEC_ASSERT(dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND,
IPSEC_ASSERT(dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND,
case IPSEC_DIR_OUTBOUND: