typedef struct
{
- ipip_transport_t transport;
- u32 fib_index;
ip46_address_t src;
ip46_address_t dst;
+ ipip_transport_t transport;
+ u32 fib_index;
} __attribute__ ((packed)) ipip_tunnel_key_t;
typedef enum
u8 ip4_prefix_len;
u8 shift;
bool security_check;
+ u32 ip6_fib_index;
} sixrd;
};
} ipip_tunnel_t;
int sixrd_add_tunnel (ip6_address_t * ip6_prefix, u8 ip6_prefix_len,
ip4_address_t * ip4_prefix, u8 ip4_prefix_len,
ip4_address_t * ip4_src, bool security_check,
- u32 fib_index, u32 * sw_if_index);
+ u32 ip4_fib_index, u32 ip6_fib_index,
+ u32 * sw_if_index);
int sixrd_del_tunnel (u32 sw_if_index);
void ipip_tunnel_db_add (ipip_tunnel_t * t, ipip_tunnel_key_t * key);
void ipip_tunnel_db_remove (ipip_tunnel_t * t);