go.ligato.io/vpp-agent/v3@v3.5.0/proto/ligato/vpp/punt/punt.proto (about)

     1  syntax = "proto3";
     2  
     3  package ligato.vpp.punt;
     4  
     5  option go_package = "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/punt;vpp_punt";
     6  
     7  import "ligato/annotations.proto";
     8  
     9  // L3Protocol defines Layer 3 protocols.
    10  enum L3Protocol {
    11      UNDEFINED_L3 = 0;
    12      IPV4 = 4;
    13      IPV6 = 6;
    14      ALL = 10;
    15  }
    16  
    17  // L4Protocol defines Layer 4 protocols.
    18  enum L4Protocol {
    19      UNDEFINED_L4 = 0;
    20      TCP = 6;
    21      UDP = 17;
    22  }
    23  
    24  // IPRedirect allows otherwise dropped packet which destination IP address
    25  // matching some of the VPP addresses to redirect to the defined next hop address
    26  // via the TX interface.
    27  message IPRedirect {
    28      // L3 protocol to be redirected
    29      L3Protocol l3_protocol = 1;
    30      // Receive interface name. Optional, only redirect traffic incoming from this interface
    31      string rx_interface = 2;
    32      // Transmit interface name
    33      string tx_interface = 3;
    34      // Next hop IP where the traffic is redirected
    35      string next_hop = 4  [(ligato_options).type = IP];
    36  }
    37  
    38  // ToHost allows otherwise dropped packet which destination IP address matching
    39  // some of the VPP interface IP addresses to be punted to the host.
    40  // L3 and L4 protocols can be used for filtering */
    41  message ToHost {
    42      // L3 destination protocol a packet has to match in order to be punted.
    43      L3Protocol l3_protocol = 2;
    44      // L4 destination protocol a packet has to match.
    45      // Currently VPP only supports UDP.
    46      L4Protocol l4_protocol = 3;
    47      // Destination port
    48      uint32 port = 4  [(ligato_options).int_range = {minimum: 0 maximum: 65535}];
    49  
    50      // SocketPath defines path to unix domain socket
    51      // used for punt packets to the host.
    52      // In dumps, it will actually contain the socket
    53      // defined in VPP config under punt section.
    54      string socket_path = 5;
    55  }
    56  
    57  // Exception allows specifying punt exceptions used for punting packets.
    58  // The type of exception is defined by reason name.
    59  message Exception {
    60      // Name should contain reason name, e.g. `ipsec4-spi-0`.
    61      string reason = 1;
    62  
    63      // SocketPath defines path to unix domain socket
    64      // used for punt packets to the host.
    65      // In dumps, it will actually contain the socket
    66      // defined in VPP config under punt section.
    67      string socket_path = 2;
    68  }
    69  
    70  // Reason represents punt reason used in exceptions.
    71  // List of known exceptions can be retrieved in VPP CLI
    72  // with following command:
    73  //
    74  // vpp# show punt reasons
    75  //    [0] ipsec4-spi-0 from:[ipsec ]
    76  //    [1] ipsec6-spi-0 from:[ipsec ]
    77  //    [2] ipsec4-spi-o-udp-0 from:[ipsec ]
    78  //    [3] ipsec4-no-such-tunnel from:[ipsec ]
    79  //    [4] ipsec6-no-such-tunnel from:[ipsec ]
    80  //    [5] VXLAN-GBP-no-such-v4-tunnel from:[vxlan-gbp ]
    81  //    [6] VXLAN-GBP-no-such-v6-tunnel from:[vxlan-gbp ]
    82  //
    83  message Reason {
    84      // Name contains reason name.
    85      string name = 1;
    86  }