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 }