+ else
+ {
+ p0 = 0;
+ pi0 = ~0;
+ };
+
+ p0 = ipsec_input_policy_match (spd0,
+ clib_net_to_host_u32
+ (ip0->src_address.as_u32),
+ clib_net_to_host_u32
+ (ip0->dst_address.as_u32),
+ IPSEC_SPD_POLICY_IP4_INBOUND_BYPASS);
+ if (PREDICT_TRUE ((p0 != NULL)))
+ {
+ ipsec_bypassed += 1;
+ pi0 = p0 - im->policies;
+ goto trace0;
+ }
+ else
+ {
+ p0 = 0;
+ pi0 = ~0;
+ };
+
+ p0 = ipsec_input_policy_match (spd0,
+ clib_net_to_host_u32
+ (ip0->src_address.as_u32),
+ clib_net_to_host_u32
+ (ip0->dst_address.as_u32),
+ IPSEC_SPD_POLICY_IP4_INBOUND_DISCARD);
+ if (PREDICT_TRUE ((p0 != NULL)))
+ {
+ ipsec_dropped += 1;
+ pi0 = p0 - im->policies;
+ next[0] = IPSEC_INPUT_NEXT_DROP;
+ goto trace0;
+ }
+ else
+ {
+ p0 = 0;
+ pi0 = ~0;
+ };
+ trace0:
+ if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) &&
+ PREDICT_FALSE (b[0]->flags & VLIB_BUFFER_IS_TRACED))