49 #define foreach_sixrd_error \ 51 _(NONE, "valid SIXRD packets") \ 52 _(BAD_PROTOCOL, "bad protocol") \ 53 _(WRONG_ICMP_TYPE, "wrong icmp type") \ 54 _(SEC_CHECK, "security check failed") \ 55 _(ICMP, "unable to translate ICMP") \ 56 _(UNKNOWN, "unknown") \ 57 _(NO_DOMAIN, "no domain") \ 58 _(ENCAPSULATED, "encapsulated") \ 59 _(DECAPSULATED, "decapsulated") \ 60 _(TRANSLATED_4TO6, "translated 4 to 6") \ 61 _(TRANSLATED_6TO4, "translated 6 to 4") \ 62 _(FRAGMENT, "fragment handling error") \ 63 _(FRAGMENT_QUEUED, "dropped, missing first fragment") \ 64 _(FRAGMENTED, "packets requiring fragmentation") \ 65 _(FRAGMENT_PARTS, "fragment parts") \ 66 _(MALFORMED, "malformed packet") 69 #define _(sym,str) SIXRD_ERROR_##sym, 107 *sixrd_domain_index = p[0];
118 u32 *sixrd_domain_index,
u8 *error)
128 *sixrd_domain_index = p[0];
136 *sixrd_domain_index = p[0];
139 *error = SIXRD_ERROR_NO_DOMAIN;
static_always_inline sixrd_domain_t * ip4_sixrd_get_domain(u32 adj_index, ip6_address_t *addr, u32 *sixrd_domain_index, u8 *error)
ip_lookup_next_t lookup_next_index
ip_lookup_main_t lookup_main
static_always_inline u32 sixrd_get_addr(sixrd_domain_t *d, u64 dal)
#define static_always_inline
#define pool_elt_at_index(p, i)
#define foreach_sixrd_error
u32 ip6_fib_lookup_with_table(ip6_main_t *im, u32 fib_index, ip6_address_t *dst)
int sixrd_delete_domain(u32 sixrd_domain_index)
ip_lookup_main_t lookup_main
always_inline ip_adjacency_t * ip_get_adjacency(ip_lookup_main_t *lm, u32 adj_index)
u8 * format_sixrd_trace(u8 *s, va_list *args)
static_always_inline sixrd_domain_t * ip6_sixrd_get_domain(u32 adj_index, u32 *sixrd_domain_index)
int sixrd_create_domain(ip6_address_t *ip6_prefix, u8 ip6_prefix_len, ip4_address_t *ip4_prefix, u8 ip4_prefix_len, ip4_address_t *ip4_src, u32 *sixrd_domain_index, u16 mtu)