#ifndef included_ip_ip6_error_h
#define included_ip_ip6_error_h
+// clang-format off
#define foreach_ip6_error \
/* Must be first. */ \
_ (NONE, "valid ip6 packets") \
_ (OUTACL_TABLE_MISS, "output ACL table-miss drops") \
_ (OUTACL_SESSION_DENY, "output ACL session deny drops") \
\
+ /* Errors from mfib-forward */ \
+ _ (RPF_FAILURE, "Multicast RPF check failed") \
+ \
/* Errors signalled by ip6-reassembly */ \
_ (REASS_MISSING_UPPER, "missing-upper layer drops") \
_ (REASS_DUPLICATE_FRAGMENT, "duplicate fragments") \
_ (REASS_OVERLAPPING_FRAGMENT, "overlapping fragments") \
_ (REASS_LIMIT_REACHED, "drops due to concurrent reassemblies limit") \
- _ (REASS_TIMEOUT, "fragments dropped due to reassembly timeout")
+ _ (REASS_FRAGMENT_CHAIN_TOO_LONG, "fragment chain too long (drop)") \
+ _ (REASS_NO_BUF, "out of buffers (drop)") \
+ _ (REASS_TIMEOUT, "fragments dropped due to reassembly timeout") \
+ _ (REASS_INTERNAL_ERROR, "drops due to internal reassembly error") \
+ _ (REASS_INVALID_FRAG_LEN, "invalid fragment length") \
+ _ (REASS_UNSUPP_IP_PROTO, "unsupported ip protocol")
+
+// clang-format on
typedef enum
{