IPSEC_DIR_OUTBOUND
case IPSEC_DIR_OUTBOUND:
if (p_dir != IPSEC_DIR_OUTBOUND) {
spidx.dir = IPSEC_DIR_OUTBOUND;
spidx.dir = IPSEC_DIR_OUTBOUND;
spidx->dir = IPSEC_DIR_OUTBOUND;
spidx.dir = IPSEC_DIR_OUTBOUND;
if (xpl->sadb_x_policy_dir == IPSEC_DIR_OUTBOUND)
if (xpl->sadb_x_policy_dir == IPSEC_DIR_OUTBOUND &&
case IPSEC_DIR_OUTBOUND:
spidx.dir = IPSEC_DIR_OUTBOUND;
{ IPSEC_DIR_OUTBOUND, "out", NULL },
IPSEC_DIR_OUTBOUND, IPPROTO_IPIP, level, IPSEC_POLICY_IPSEC,
IPSEC_DIR_OUTBOUND, IPPROTO_IPV6, level, v6policy,
#define IV_SP_OUT(x) ((x)->iv_sp[IPSEC_DIR_OUTBOUND])
#define IV_SP_OUT6(x) ((x)->iv_sp6[IPSEC_DIR_OUTBOUND])
!ipsec_pcb_skip_ipsec(inp->inp_sp, IPSEC_DIR_OUTBOUND))
!ipsec_pcb_skip_ipsec(inp->inp_sp, IPSEC_DIR_OUTBOUND))
!ipsec_pcb_skip_ipsec(inp->inp_sp, IPSEC_DIR_OUTBOUND))
IPSEC_DIR_OUTBOUND)) &&
IPSEC_DIR_OUTBOUND)) &&
hdrsiz = ipsec_hdrsiz(tp->t_template, IPSEC_DIR_OUTBOUND, inp);
hdrsiz = ipsec_hdrsiz(tp->t_template, IPSEC_DIR_OUTBOUND, inp);
case IPSEC_DIR_OUTBOUND:
case IPSEC_DIR_OUTBOUND:
if (inp && ipsec_pcb_skip_ipsec(inp->inp_sp, IPSEC_DIR_OUTBOUND)) {
sp = ipsec_checkpolicy(m, IPSEC_DIR_OUTBOUND, flags, &error, inp);
for (i = IPSEC_DIR_INBOUND; i <= IPSEC_DIR_OUTBOUND; i++) {
case IPSEC_DIR_OUTBOUND:
if (inp && ipsec_pcb_skip_ipsec(inp->inp_sp, IPSEC_DIR_OUTBOUND)) {
sp = ipsec_checkpolicy(m, IPSEC_DIR_OUTBOUND, flags, &error, inp);
sp = ipsec_checkpolicy(m, IPSEC_DIR_OUTBOUND, IP_FORWARDING,
sp = ipsec_getpolicybyaddr(m, IPSEC_DIR_OUTBOUND, IP_FORWARDING,
inp->inp_sp->sp_out->spidx.dir = IPSEC_DIR_OUTBOUND;
(dir) == IPSEC_DIR_OUTBOUND)
SPLIST_READER_FOREACH(sp, IPSEC_DIR_OUTBOUND) {
SPLIST_READER_FOREACH(sp, IPSEC_DIR_OUTBOUND) {
case IPSEC_DIR_OUTBOUND:
case IPSEC_DIR_OUTBOUND:
!SPLIST_READER_EMPTY(IPSEC_DIR_OUTBOUND) ||
return (dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND ?