+#define foreach_ipsec_spd_policy_type \
+ _(IP4_OUTBOUND, "ip4-outbound") \
+ _(IP6_OUTBOUND, "ip6-outbound") \
+ _(IP4_INBOUND_PROTECT, "ip4-inbound-protect") \
+ _(IP6_INBOUND_PROTECT, "ip6-inbound-protect") \
+ _(IP4_INBOUND_BYPASS, "ip4-inbound-bypass") \
+ _(IP6_INBOUND_BYPASS, "ip6-inbound-bypass")
+
+typedef enum ipsec_spd_policy_t_
+{
+#define _(s,v) IPSEC_SPD_POLICY_##s,
+ foreach_ipsec_spd_policy_type
+#undef _
+ IPSEC_SPD_POLICY_N_TYPES,
+} ipsec_spd_policy_type_t;
+
+#define FOR_EACH_IPSEC_SPD_POLICY_TYPE(_t) \
+ for (_t = 0; _t < IPSEC_SPD_POLICY_N_TYPES; _t++)
+
+extern u8 *format_ipsec_policy_type (u8 * s, va_list * args);