FD.io VPP  v19.08.3-2-gbabecb413
Vector Packet Processing
ipip.api File Reference

Go to the source code of this file.

Data Structures

struct  vl_api_ipip_add_tunnel_t
 Create an IP{v4,v6} over IP{v4,v6} tunnel. More...
 
struct  vl_api_ipip_add_tunnel_reply_t
 
struct  vl_api_ipip_del_tunnel_t
 Delete an IP{v4,v6} over IP{v4,v6} tunnel. More...
 
struct  vl_api_ipip_6rd_add_tunnel_t
 Create an IPv4 over IPv6 automatic tunnel (6RD) More...
 
struct  vl_api_ipip_6rd_add_tunnel_reply_t
 
struct  vl_api_ipip_6rd_del_tunnel_t
 Delete an IPv4 over IPv6 automatic tunnel (6RD) More...
 
struct  vl_api_ipip_tunnel_dump_t
 List all IPIP tunnels. More...
 
struct  vl_api_ipip_tunnel_details_t
 

Variables

option version = "1.2.0"
 The IPIP module implements IP{v4,v6} over IP{v4,v6} tunnelling as described in RFC2473 and to some extent the largely historical RFC1853. More...
 
import vnet interface_types api
 
typedef ipip_tunnel
 An IP{v4,v6} over IP{v4,v6} tunnel. More...
 
vl_api_address_t src
 
vl_api_address_t dst
 
vl_api_interface_index_t sw_if_index
 
u32 table_id
 
u8 tc_tos
 

Variable Documentation

◆ api

import vnet ip ip_types api

Definition at line 52 of file ipip.api.

◆ dst

vl_api_address_t dst

Definition at line 62 of file ipip.api.

◆ ipip_tunnel

typedef ipip_tunnel
Initial value:
{
unsigned int u32
Definition: types.h:88
u32 instance
Definition: gre.api:48

An IP{v4,v6} over IP{v4,v6} tunnel.

Definition at line 59 of file ipip.api.

◆ src

vl_api_address_t src

Definition at line 61 of file ipip.api.

◆ sw_if_index

vl_api_interface_index_t sw_if_index

Definition at line 63 of file ipip.api.

◆ table_id

u32 table_id

Definition at line 65 of file ipip.api.

◆ tc_tos

u8 tc_tos

Definition at line 66 of file ipip.api.

◆ version

option version = "1.2.0"

The IPIP module implements IP{v4,v6} over IP{v4,v6} tunnelling as described in RFC2473 and to some extent the largely historical RFC1853.

The module also supports an IPv4 over IPv6 automatic tunnelling mechanism called 6RD (RFC5969).

The IPIP API module supports a CRD model for adding, deleting and listing tunnels. A tunnel is represented as an interface in VPP. The "handle" representing a tunnel is the sw_if_index. As any interface, the user must configure an IPv4 and/or IPv6 address on the interface. This is the inner or payload protocol.

Tunnel MTU: The tunnel MTU (the payload MTU) is configurable per protocol. If a tunnel MTU is larger than the path MTU, the outer packet will be fragmented. Fragmentation support is configurable, as it can have severe performance issues, and might be used as an attack vector (the remote side must reassemble.)

Traffic class / TOS field can either be configured to a fixed value, or can be copied from the inner to the outer header. (For now we have stolen ~0 to indicate copy).

Note:

  • The Tunnel encapsulation limit described in RFC2473 is not implemented.
  • ICMP proxying, as in a tunnel head-end receiving ICMP erors on the outer packet is currently not relayed to the original source of the packet.
  • PMTUD / MTU probing and tunnel keepalives are not yet implemented.

Definition at line 51 of file ipip.api.