blob: d5bc264b9baa3e4b91d79b0b8dfd523740a861c2 [file] [log] [blame]
Jian Lie9ac2c52016-01-13 17:42:05 -08001{
2 "type": "object",
3 "title": "forwardingObjective",
4 "required": [
5 "flag",
6 "priority",
7 "timeout",
8 "isPermanent",
9 "deviceId",
10 "operation",
11 "selector",
12 "treatment"
13 ],
14 "properties": {
15 "flag": {
16 "type": "string",
17 "example": "SPECIFIC"
18 },
19 "priority": {
20 "type": "integer",
21 "format": "int64",
22 "example": 400000
23 },
24 "timeout": {
25 "type": "integer",
26 "format": "int64",
27 "example": 0
28 },
29 "isPermanent": {
30 "type": "boolean",
31 "example": true
32 },
33 "deviceId": {
34 "type": "string",
35 "example": "of:0000000000000001"
36 },
37 "operation": {
38 "type": "string",
39 "example": "ADD"
40 },
41 "selector": {
42 "type": "object",
43 "title": "selector",
44 "required": [
45 "criteria"
46 ],
47 "properties": {
48 "criteria": {
49 "type": "array",
50 "xml": {
51 "name": "criteria",
52 "wrapped": true
53 },
54 "items": {
55 "type": "object",
56 "title": "criteria",
57 "properties": {
58 "type": {
59 "type": "string",
60 "description": "Ethernet field name",
61 "example": "ETH_TYPE"
62 },
63 "ethType": {
64 "type": "int64",
65 "format": "int64",
66 "example": "0x88cc",
67 "description": "Ethernet frame type"
68 },
69 "mac": {
70 "type": "string",
71 "example": "00:00:11:00:00:01"
72 },
73 "port": {
74 "type": "int64",
75 "format": "int64",
76 "example": 1,
77 "description": "Match port"
78 },
79 "metadata": {
80 "type": "Hex16",
81 "format": "Hex16",
82 "example": "0xabcdL",
83 "description": "Metadata passed between tables"
84 },
85 "vlanId": {
86 "type": "uint16",
87 "format": "uint16",
88 "example": "0x1000"
89 },
90 "priority": {
91 "type": "int64",
92 "format": "int64",
93 "example": 1,
94 "description": "VLAN priority."
95 },
96 "ipDscp": {
97 "type": "byte",
98 "format": "byte",
99 "description": "IP DSCP (6 bits in ToS field)"
100 },
101 "ipEcn": {
102 "type": "byte",
103 "format": "byte",
104 "description": "IP ECN (2 bits in ToS field)."
105 },
106 "protocol": {
107 "type": "uint16",
108 "format": "uint16",
109 "example": 1,
110 "description": "IP protocol"
111 },
112 "ip": {
113 "type": "string",
114 "example": "10.1.1.0/24",
115 "description": "IP source address"
116 },
117 "tcpPort": {
118 "type": "integer",
119 "format": "uint16",
120 "example": 1,
121 "description": "TCP source address"
122 },
123 "udpPort": {
124 "type": "uint16",
125 "format": "uint16",
126 "example": 1,
127 "description": "UDP source address"
128 },
129 "sctpPort": {
130 "type": "uint16",
131 "format": "uint16",
132 "example": 1,
133 "description": "SCTP source address"
134 },
135 "icmpType": {
136 "type": "uint16",
137 "format": "uint16",
138 "example": 1,
139 "description": "Internet Control Message Protocol for IPV4 code (RFC0792)"
140 },
141 "icmpCode": {
142 "type": "uint16",
143 "format": "uint16",
144 "example": 1,
145 "description": "Internet Control Message Protocol for IPV4 code (RFC0792)"
146 },
147 "flowLabel": {
148 "type": "Hex16",
149 "format": "Hex16",
150 "example": "0xffffe",
151 "description": "IPv6 Flow Label (RFC 6437)"
152 },
153 "icmpv6Type": {
154 "type": "uint16",
155 "format": "uint16",
156 "example": 1,
157 "description": "Internet Control Message Protocol for IPV6 type (RFC2463)"
158 },
159 "icmpv6Code": {
160 "type": "uint16",
161 "format": "uint16",
162 "example": 1,
163 "description": "Internet Control Message Protocol for IPV6 code (RFC2463)"
164 },
165 "targetAddress": {
166 "type": "String",
167 "example": "10.1.1.0/24",
168 "description": "IPv6 Neighbor discovery target address"
169 },
170 "label": {
171 "type": "int32",
172 "format": "int32",
173 "example": 1,
174 "description": "MPLS label"
175 },
176 "exthdrFlags": {
177 "type": "int64",
178 "format": "int64",
179 "example": 1,
180 "description": "IPv6 extension header pseudo-field"
181 },
182 "lambda": {
183 "type": "int64",
184 "format": "int64",
185 "example": 1,
186 "description": "wavelength abstraction"
187 },
188 "gridType": {
189 "type": "String",
190 "example": "DWDM",
191 "description": "Type of wavelength grid"
192 },
193 "channelSpacing": {
194 "type": "int64",
195 "format": "int64",
196 "example": 100,
197 "description": "Optical channel spacing"
198 },
199 "spacingMultiplier": {
200 "type": "integer",
201 "format": "int64",
202 "example": 4,
203 "description": "Optical channel spacing multiplier"
204 },
205 "slotGranularity": {
206 "type": "int64",
207 "format": "int64",
208 "example": 8
209 },
210 "ochSignalId": {
211 "type": "integer",
212 "format": "int64",
213 "example": 1,
214 "description": "Optical channel signal ID"
215 },
216 "tunnelId": {
217 "type": "int64",
218 "format": "int64",
219 "example": 5,
220 "description": "Tunnel ID"
221 },
222 "ochSignalType": {
223 "type": "int64",
224 "format": "int64",
225 "example": 1,
226 "description": "Optical channel signal type"
227 },
228 "oduSignalId": {
229 "type": "int64",
230 "format": "int64",
231 "example": 1,
232 "description": "ODU (Optical channel Data Unit) signal ID."
233 },
234 "tributaryPortNumber": {
235 "type": "int64",
236 "format": "int64",
237 "example": 11,
238 "description": "OPU (Optical channel Payload Unit) port number."
239 },
240 "tributarySlotLen": {
241 "type": "int64",
242 "format": "int64",
243 "example": 80,
244 "description": "OPU (Optical channel Payload Unit) slot length."
245 },
246 "tributarySlotBitmap": {
247 "type": "array",
248 "title": "tributarySlotBitmap",
249 "description": "OPU (Optical channel Payload Unit) slot bitmap.",
250 "required": [
251 "byte",
252 "port"
253 ],
254 "items": {
255 "type": "byte",
256 "title": "byte",
257 "example": 1
258 }
259 },
260 "oduSignalType": {
261 "type": "int64",
262 "format": "int64",
263 "example": 4,
264 "description": "ODU (Optical channel Data Unit) signal type."
265 }
266 }
267 }
268 }
269 }
270 },
271 "treatment": {
272 "type": "object",
273 "title": "treatment",
274 "required": [
275 "instructions"
276 ],
277 "properties": {
278 "instructions": {
279 "type": "array",
280 "title": "treatment",
281 "required": [
282 "properties",
283 "port"
284 ],
285 "items": {
286 "type": "object",
287 "title": "instructions",
288 "required": [
289 "type",
290 "port"
291 ],
292 "properties": {
293 "type": {
294 "type": "string",
295 "example": "OUTPUT"
296 },
297 "port": {
298 "type": "string",
299 "example": "CONTROLLER"
300 }
301 }
302 }
303 }
304 }
305 }
306 }
307}