ip: Protocol Independent IP Neighbors
[vpp.git] / src / vnet / ip6-nd / rd_cp_api.c
1 /*
2  * Copyright (c) 2018 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 #include <vnet/ip6-nd/rd_cp.h>
17
18 #include <vlibapi/api.h>
19 #include <vlibmemory/api.h>
20
21 /* define message IDs */
22 #include <vnet/format_fns.h>
23 #include <vnet/ip6-nd/rd_cp.api_enum.h>
24 #include <vnet/ip6-nd/rd_cp.api_types.h>
25
26 /**
27  * Base message ID fot the plugin
28  */
29 static u32 rd_cp_base_msg_id;
30 #define REPLY_MSG_ID_BASE rd_cp_base_msg_id
31
32 #include <vlibapi/api_helper_macros.h>
33
34
35 static void
36 vl_api_ip6_nd_address_autoconfig_t_handler (vl_api_ip6_nd_address_autoconfig_t
37                                             * mp)
38 {
39   vl_api_ip6_nd_address_autoconfig_reply_t *rmp;
40   u32 sw_if_index;
41   int rv = 0;
42
43   VALIDATE_SW_IF_INDEX (mp);
44
45   sw_if_index = ntohl (mp->sw_if_index);
46
47   rv = rd_cp_set_address_autoconfig (sw_if_index,
48                                      mp->enable, mp->install_default_routes);
49
50   BAD_SW_IF_INDEX_LABEL;
51
52   REPLY_MACRO (VL_API_IP6_ND_ADDRESS_AUTOCONFIG_REPLY);
53 }
54
55 #include <vnet/ip6-nd/rd_cp.api.c>
56
57 static clib_error_t *
58 rd_cp_api_init (vlib_main_t * vm)
59 {
60   rd_cp_base_msg_id = setup_message_id_table ();
61
62   return (NULL);
63 }
64
65 VLIB_INIT_FUNCTION (rd_cp_api_init);
66
67 /*
68  * fd.io coding-style-patch-verification: ON
69  *
70  * Local Variables:
71  * eval: (c-set-style "gnu")
72  * End:
73  */