ip: Protocol Independent IP Neighbors
[vpp.git] / src / vnet / arp / arp.api
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2019 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /** \file
18     This file defines the vpp control-plane API messages
19     used to control the ABF plugin
20 */
21
22 option version = "1.0.0";
23
24 import "vnet/ip/ip_types.api";
25 import "vnet/ethernet/ethernet_types.api";
26 import "vnet/interface_types.api";
27
28 /** \brief Proxy ARP configuration type
29     @param table_id - VRF / Fib table ID
30     @param low - Low address of the Proxy ARP range
31     @param hi - High address of the Proxy ARP range
32 */
33 typedef proxy_arp
34 {
35   u32 table_id;
36   vl_api_ip4_address_t low;
37   vl_api_ip4_address_t hi;
38 };
39
40 /** \brief Proxy ARP add / del request
41     @param client_index - opaque cookie to identify the sender
42     @param context - sender context, to match reply w/ request
43     @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
44     @param proxy - Proxy configuration
45 */
46 autoreply define proxy_arp_add_del
47 {
48   u32 client_index;
49   u32 context;
50   bool is_add;
51   vl_api_proxy_arp_t proxy;
52 };
53
54 /** \brief Proxy ARP dump request
55  */
56 define proxy_arp_dump
57 {
58   u32 client_index;
59   u32 context;
60 };
61
62 /** \brief Proxy ARP dump details reply
63  * @param proxy - Same data as used to configure
64  */
65 define proxy_arp_details
66 {
67   u32 context;
68   vl_api_proxy_arp_t proxy;
69 };
70
71 /** \brief Proxy ARP add / del interface request
72     @param client_index - opaque cookie to identify the sender
73     @param context - sender context, to match reply w/ request
74     @param sw_if_index - Which interface to enable / disable Proxy Arp on
75     @param enable - 1 to enable Proxy ARP on interface, 0 to disable
76 */
77 autoreply define proxy_arp_intfc_enable_disable
78 {
79   u32 client_index;
80   u32 context;
81   vl_api_interface_index_t sw_if_index;
82   bool enable;
83 };
84
85 /** \brief Proxy ARP interface dump request
86  */
87 define proxy_arp_intfc_dump
88 {
89   u32 client_index;
90   u32 context;
91 };
92
93 /** \brief Proxy ARP interface dump details reply
94  * @param sw_if_index The interface on which ARP proxy is enabled.
95  */
96 define proxy_arp_intfc_details
97 {
98   u32 context;
99   u32 sw_if_index;
100 };