API refactoring : l2, mpls, sr
[vpp.git] / src / vnet / sr / sr.api
1 /*
2  * Copyright (c) 2015-2016 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 /** \brief IPv6 segment routing tunnel add / del request
17     @param client_index - opaque cookie to identify the sender
18     @param context - sender context, to match reply w/ request
19     @param is_add - add the tunnel if non-zero, else delete it
20     @param name[] - tunnel name (len. 64)
21     @param src_address[] -
22     @param dst_address[] -
23     @param dst_mask_width -
24     @param inner_vrf_id -
25     @param outer_vrf_id -
26     @param flags_net_byte_order -
27     @param n_segments -
28     @param n_tags -
29     @param segs_and_tags[] -
30     @param policy_name[] - name of policy to associate this tunnel to (len. 64)
31 */
32 define sr_tunnel_add_del
33 {
34   u32 client_index;
35   u32 context;
36   u8 is_add;
37   u8 name[64];
38   u8 src_address[16];
39   u8 dst_address[16];
40   u8 dst_mask_width;
41   u32 inner_vrf_id;
42   u32 outer_vrf_id;
43   u16 flags_net_byte_order;
44   u8 n_segments;
45   u8 n_tags;
46   u8 policy_name[64];
47   u8 segs_and_tags[0];
48 };
49
50 /** \brief IPv6 segment routing tunnel add / del response
51     @param context - sender context, to match reply w/ request
52     @param retval - return value for request
53 */
54 define sr_tunnel_add_del_reply
55 {
56   u32 context;
57   i32 retval;
58 };
59
60 /** \brief IPv6 segment routing policy add / del request
61     @param client_index - opaque cookie to identify the sender
62     @param context - sender context, to match reply w/ request
63     @param is_add - add the tunnel if non-zero, else delete it
64     @param name[] - policy name (len. 64)
65     @param tunnel_names[] -
66 */
67 define sr_policy_add_del
68 {
69   u32 client_index;
70   u32 context;
71   u8 is_add;
72   u8 name[64];
73   u8 tunnel_names[0];
74 };
75
76 /** \brief IPv6 segment routing policy add / del response
77     @param context - sender context, to match reply w/ request
78     @param retval - return value for request 
79  
80     
81 */
82 define sr_policy_add_del_reply
83 {
84   u32 context;
85   i32 retval;
86 };
87
88 /** \brief IPv6 segment routing multicast map to policy add / del request
89     @param client_index - opaque cookie to identify the sender
90     @param context - sender context, to match reply w/ request
91     @param is_add - add the tunnel if non-zero, else delete it
92     @param multicast_address[] - IP6 multicast address
93     @param policy_name[] = policy name (len.64)
94 */
95 define sr_multicast_map_add_del
96 {
97   u32 client_index;
98   u32 context;
99   u8 is_add;
100   u8 multicast_address[16];
101   u8 policy_name[64];
102 };
103
104 /** \brief IPv6 segment routing multicast map to policy add / del response
105     @param context - sender context, to match reply w/ request
106     @param retval - return value for request
107 */
108 define sr_multicast_map_add_del_reply
109 {
110   u32 context;
111   i32 retval;
112 };
113
114 /*
115  * Local Variables:
116  * eval: (c-set-style "gnu")
117  * End:
118  */
119