blob: a066b688514b863d1d0d5773b53c416e76a0cb81 [file] [log] [blame]
Ole Troanf0c90e22016-12-06 12:50:08 +01001/*
2 * Copyright (c) 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
Ole Troan9d420872017-10-12 13:06:35 +020016option version = "1.1.0";
Ole Troanf0c90e22016-12-06 12:50:08 +010017
18/** \brief Add MAP domains
19 @param client_index - opaque cookie to identify the sender
20 @param context - sender context, to match reply w/ request
21 @param ip6_prefix - Rule IPv6 prefix
22 @param ip4_prefix - Rule IPv4 prefix
23 @param ip6_src - MAP domain IPv6 BR address / Tunnel source
24 @param ip6_prefix_len - Rule IPv6 prefix length
25 @param ip4_prefix_len - Rule IPv4 prefix length
26 @param ea_bits_len - Embedded Address bits length
27 @param psid_offset - Port Set Identifider (PSID) offset
28 @param psid_length - PSID length
29 @param is_translation - MAP-E / MAP-T
Ole Troane31d9562017-11-08 11:10:54 +010030 @param is_rfc6052 - rfc6052 translation
Ole Troanf0c90e22016-12-06 12:50:08 +010031 @param mtu - MTU
32*/
33define map_add_domain
34{
35 u32 client_index;
36 u32 context;
37 u8 ip6_prefix[16];
38 u8 ip4_prefix[4];
39 u8 ip6_src[16];
40 u8 ip6_prefix_len;
41 u8 ip4_prefix_len;
42 u8 ip6_src_prefix_len;
43 u8 ea_bits_len;
44 u8 psid_offset;
45 u8 psid_length;
46 u8 is_translation;
Ole Troane31d9562017-11-08 11:10:54 +010047 u8 is_rfc6052;
Ole Troanf0c90e22016-12-06 12:50:08 +010048 u16 mtu;
49};
50
51/** \brief Reply for MAP domain add
52 @param context - returned sender context, to match reply w/ request
53 @param index - MAP domain index
54 @param retval - return code
55*/
56define map_add_domain_reply
57{
58 u32 context;
59 u32 index;
60 i32 retval;
61};
62
63/** \brief Delete MAP domain
64 @param client_index - opaque cookie to identify the sender
65 @param context - sender context, to match reply w/ request
66 @param index - MAP Domain index
67*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040068autoreply define map_del_domain
Ole Troanf0c90e22016-12-06 12:50:08 +010069{
70 u32 client_index;
71 u32 context;
72 u32 index;
73};
74
Ole Troanf0c90e22016-12-06 12:50:08 +010075
76/** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber)
77 @param client_index - opaque cookie to identify the sender
78 @param context - sender context, to match reply w/ request
79 @param index - MAP Domain index
80 @param is_add - If 1 add rule, if 0 delete rule
81 @param ip6_dst - MAP CE IPv6 address
82 @param psid - Rule PSID
83*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040084autoreply define map_add_del_rule
Ole Troanf0c90e22016-12-06 12:50:08 +010085{
86 u32 client_index;
87 u32 context;
88 u32 index;
Ole Troan026c0362017-06-14 13:12:33 +020089 u8 is_add;
Ole Troanf0c90e22016-12-06 12:50:08 +010090 u8 ip6_dst[16];
91 u16 psid;
92};
93
Ole Troanf0c90e22016-12-06 12:50:08 +010094
95/** \brief Get list of map domains
96 @param client_index - opaque cookie to identify the sender
97*/
98define map_domain_dump
99{
100 u32 client_index;
101 u32 context;
102};
103
104define map_domain_details
105{
106 u32 context;
107 u32 domain_index;
108 u8 ip6_prefix[16];
109 u8 ip4_prefix[4];
110 u8 ip6_src[16];
111 u8 ip6_prefix_len;
112 u8 ip4_prefix_len;
113 u8 ip6_src_len;
114 u8 ea_bits_len;
115 u8 psid_offset;
116 u8 psid_length;
117 u8 flags;
118 u16 mtu;
119 u8 is_translation;
120};
121
122define map_rule_dump
123{
124 u32 client_index;
125 u32 context;
126 u32 domain_index;
127};
128
129define map_rule_details
130{
131 u32 context;
132 u8 ip6_dst[16];
133 u16 psid;
134};
135
136/** \brief Request for a single block of summary stats
137 @param client_index - opaque cookie to identify the sender
138 @param context - sender context, to match reply w/ request
139*/
140define map_summary_stats
141{
142 u32 client_index;
143 u32 context;
144};
145
146/** \brief Reply for map_summary_stats request
147 @param context - sender context, to match reply w/ request
148 @param retval - return code for request
149 @param total_bindings -
150 @param total_pkts -
151 @param total_ip4_fragments -
152 @param total_security_check -
153*/
154define map_summary_stats_reply
155{
156 u32 context;
157 i32 retval;
158 u64 total_bindings;
159 u64 total_pkts[2];
160 u64 total_bytes[2];
161 u64 total_ip4_fragments;
162 u64 total_security_check[2];
163};