Junos OS routing IDL - Protocol Documentation

Table of Contents

Flexible Tunnel Profile

FlexibleTunnelProfile

A flexible tunnel profile contains a set encapsulation parameters for a flexible tunnel. It may specify an encapsulation or decapsulation.

Field Type Label Description
name string optional A unique client-assigned name for this profile. OPTIONAL when FlexibleTunnelProfile is used in RouteGateway. REQUIRED when used with any RPC from the flexible_tunnel_service.
action TunnelActionType optional The action that this profile will be used for: encapsulate, decapsulate, or symetric in both directions. REQUIRED.
interface_name string optional Name of the anchoring tunnel interface to use for statistics, policing, filtering, and default encapsulation parameters. REQUIRED.
attributes TunnelAttributes optional The encapsulation parameters defining the profile. REQUIRED.

TunnelAttributes

Encapsulation/Decapsulation attibutes for various types of tunnels.

Field Type Label Description
vxlan VxlanTunnelAttributes optional VXLAN tunnels.

VxlanTunnelAttributes

A set of VXLAN flexible tunnel attributes contains the encapsulation and/or decapsulation parameters specific to a VXLAN flexible tunnel.

A VXLAN decapsulation tunnel is considered unique only if the full tuple of VNI, source prefix/length, and destination port is unique from other decapsulation tunnels. Adding or updating VXLAN decapsulation tunnel with conflicting attributes will result in an error.

Field Type Label Description
vni uint32 optional VXLAN Network Identifier (VNI) is a 24-bit value ranging from 1 to 16777214 (inclusive). REQUIRED for both encapsulations and decapsulations.
source_prefix NetworkAddress optional Outer source address prefix for the encapsulated traffic. Must be IPv4 or IPv6. REQUIRED for both encapsulations and decapsulations.
source_prefix_len uint32 optional Source address prefix length. REQUIRED for both encapulations and decapsulations. For encapsulation, it must be the host address prefix length (i.e. 32 for IPv4, 128 for IPv6).
source_udp_port_range NumericRange optional Outer source UDP port range. The source port for each route will be picked from the given range. Port numbers are 16-bit values ranging from 0 to 65535 (inclusive). REQUIRED for encapsulations, OPTIONAL and ignored for decapsulations.
source_mac MacAddress optional Source MAC address will be ignored. OPTIONAL. JUNOS will set the source MAC by default for encapsulations.
destination_address NetworkAddress optional Outer destination address for the encapsulated traffic. Must be the IPv4 or IPv6 address of a local interface. REQUIRED for encapsulations, OPTIONAL and ignored for decapsulations.
destination_udp_port uint32 optional Outer destination UDP port, a 16-bit value ranging from 0 to 65535 (inclusive). REQUIRED for both encapsulations and decapsulations.
destination_mac MacAddress optional Destination MAC address, a 48-bit MAC value. OPTIONAL. If not specified, JUNOS will set the destination MAC by default for encapsulations.
flags uint32 optional VXLAN Flags are 8 bits of flags as specified in RFC7348. REQUIRED for encapsulations, OPTIONAL for decapsulations.

TunnelActionType

The given TunnelAttributes can used by the route for encapsulation, decpasulation, or both symetrically.

Name Number Description
ENCAPSULATE 0 Use associated TunnelAttributes to encapsulate packets.
DECAPSULATE 1 Use associated TunnelAttributes to decapsulate packets.

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str