blob: ddb08dfd3e3bf75082052568be0379d297a92881 [file] [log] [blame]
Yafit Hadarf8caac02015-08-25 10:21:44 +03001/* This file input supports the Optical Transport Protocol Extentions - version 1.0 */
2
3#version 4
4/*Supported signal types for layer class OFPOTPL_ODU */
5enum ofp_odu_signal_type (wire_type=uint8_t) {
6 OFPODUT_ODU1 = 1,
7 OFPODUT_ODU2 = 2,
8 OFPODUT_ODU3 = 3,
9 OFPODUT_ODU4 = 4,
10 OFPODUT_ODU0 = 10,
11 OFPODUT_ODU2E = 11,
12 OFPODUT_ODUfCBR = 20,
13 OFPODUT_ODUfGFPfHAO = 21,
14 OFPODUT_ODUfGFPf = 22,
15};
16
17
18//enum ofp_experimenter_multipart_type_exp (wire_type=uint32_t){
19 //OFPEMPTE = 1,
20//};
21
22//enum ofp_port_desc_prop_type_exp (wire_type=uint32_t){
23 //OFPPDPT_OPTICAL_TRAMSPORT = 2,
24//};
25
26/* Supported signal types for layer class OFPPOTL_PORT */
27enum ofp_port_optical_transport_signal_type (wire_type=uint8_t) {
28 OFPPOTST_OTSn = 1,
29 OFPPOTST_OMSn = 2,
30 OFPPOTST_OPSn = 3,
31 OFPPOTST_OPSM = 4,
32 OFPPOTST_OCH = 5,
33 OFPPOTST_OTU1 = 11,
34 OFPPOTST_OTU2 = 12,
35 OFPPOTST_OTU3 = 13,
36 OFPPOTST_OTU4 = 14,
37};
38
39
40/* Features of optical transport ports available in switch. */
41enum ofp_port_optical_transport_feature_type (wire_type=uint16_t) {
42 OFPPOTFT_OPT_INTERFACE_CLASS = 1, /* Application code/ID encoding */
43 OFPPOTFT_LAYER_STACK = 2, /* Supported signal types and adaptations */
44};
45
46
47/*Supported signal types for layer class OFPOTPL_ODUCLT */
48enum ofp_oduclt_signal_type(wire_type=uint8_t) {
49 OFPODUCLT_STM16 = 1,
50 OFPODUCLT_STM64 = 2,
51 OFPODUCLT_STM256 = 3,
52 OFPODUCLT_STM1 = 4,
53 OFPODUCLT_STM4 = 5,
54 OFPODUCLT_GBE1 = 6,
55 OFPODUCLT_GBE10 = 7,
56 OFPODUCLT_GBE40 = 8,
57 OFPODUCLT_GBE100 = 9,
58 OFPODUCLT_FC100 = 10,
59 OFPODUCLT_FC200 = 11,
60 OFPODUCLT_FC400 = 12,
61 OFPODUCLT_FC800 = 13,
62 OFPODUCLT_FC1200 = 14,
63 OFPODUCLT_GPON = 15,
64 OFPODUCLT_XGPON = 16,
65 OFPODUCLT_IB_SDR = 17,
66 OFPODUCLT_IB_DDR = 18,
67 OFPODUCLT_IB_QDR = 19,
68 OFPODUCLT_SBCON_ESCON = 20,
69 OFPODUCLT_DVBASI = 21,
70 OFPODUCLT_SDI = 22,
71 OFPODUCLT_SDI1G5 = 23,
72 OFPODUCLT_SDI3G = 24,
73 OFPODUCLT_ATM = 25,
74 OFPODUCLT_ETH = 26,
75 OFPODUCLT_MPLS = 27,
76 OFPODUCLT_IP = 28,
77};
78
79/* Supported adaptations for optical transport port layer stack*/
80enum ofp_adaptations_type (wire_type=uint8_t){
81 OFPADAPT_OTS_OMS = 1,
82 OFPADAPT_OMS_OCH = 2,
83 OFPADAPT_OPS_OCHr = 3,
84 OFPADAPT_OPSM_OTUk = 4,
85 OFPADAPT_OCH_OTUk = 5,
86 OFPADAPT_ODUk_ODUij = 6,
87 OFPADAPT_ODUk_ODUj21 = 7,
88 OFPADAPT_ODUkh_ODUj21 = 8,
89 OFPADAPT_ODU0_CBRx = 9,
90 OFPADAPT_ODUk_CBRx = 10,
91 OFPADAPT_ODUk_CBRxg = 11,
92 OFPADAPT_ODUk_RSn = 12,
93 OFPADAPT_ODUk_ATM = 13,
94 OFPADAPT_ODUk_ETH = 14,
95 OFPADAPT_ODUkh_ETH = 15,
96 OFPADAPT_ODUk_ETHPPOS = 16,
97};
98
99struct of_oxm_exp_odu_sigtype : of_oxm {
100 uint32_t type_len == 0xFFFF0401;
101 uint32_t experimenter == 0xFF000007;
102 uint8_t value;
103};
104
105struct of_oxm_exp_odu_sig_id : of_oxm {
106 uint32_t type_len == 0xFFFF0610;
107 uint32_t experimenter == 0xFF000007;
108 of_odu_sig_id_t value;// size of this struct is 16 bytes 2+2+10+2(pad)
109};
110
111//This struct defenition is unnecessury for the openflow java ("make java" command )
112//It is reqiured for wireshark dissector ("make wireshark" command)
113struct of_odu_sig_id_t {
114 uint16_t tpn; //Tributary Port Number
115 uint16_t length; // Number of Tributary Slots included in tsmap,
116 // based on the Server ODU type and TS Granularity
117 of_octets_t tsmap; //tsmap;
118};
119
120struct of_oxm_exp_och_sigtype : of_oxm {
121 uint32_t type_len == 0xFFFF0801;
122 uint32_t experimenter == 0xFF000007;
123 uint8_t value;
124};
125
126struct of_oxm_exp_och_sig_id : of_oxm {
127 uint32_t type_len == 0xFFFF0A06;
128 uint32_t experimenter == 0xFF000007;
129 of_och_sig_id_t value;
130};
131
132
133// open flow extention - support port description Extentions for OTN Ports
134struct of_exp_port_desc_request : of_experimenter_stats_request {
135 uint8_t version;
136 uint8_t type == 18;
137 uint16_t length;
138 uint32_t xid;
139 uint16_t stats_type == 0xffff;
140 enum ofp_stats_request_flags flags;
141 pad(4);
142 uint32_t experimenter == 0xFF000007;
143 uint32_t subtype == 1;//enum ofp_experimenter_multipart_type exp_type == 1;
144};
145
146struct of_exp_port_desc_reply : of_experimenter_stats_reply {
147 uint8_t version;
148 uint8_t type == 19;
149 uint16_t length;
150 uint32_t xid;
151 uint16_t stats_type == 0xffff;
152 enum ofp_stats_reply_flags flags;
153 pad(4);
154 uint32_t experimenter == 0xFF000007;
155 uint32_t subtype == 1;//enum ofp_experimenter_multipart_type subtype == 1;
156 list(of_exp_port_t) entries;
157};
158
159struct of_exp_port {
160 of_port_no_t port_no;
161 uint16_t length;
162 pad(2);
163 of_mac_addr_t hw_addr;
164 pad(2);
165 of_port_name_t name;
166 enum ofp_port_config config;
167 enum ofp_port_state state;
168 list(of_exp_port_desc_prop_optical_transport_t) properties;
169};
170
171struct of_exp_port_des_prop_header {
172 uint16_t type == 2; //enum ofp_port_desc_prop_type_exp type == 2;
173 uint16_t length;
174};
175
176struct of_exp_port_desc_prop_optical_transport // : of_exp_port_des_prop_header
177{
178 uint16_t type == 2;
179 uint16_t length; // length in bytes of this property
180 enum ofp_port_optical_transport_signal_type port_signal_type;
181 //base port layer signal type (enum ofp_port_optical_transport_signal_type)
182 uint8_t reserved;
183 pad(2);
184 list(of_exp_port_optical_transport_layer_stack_t) features; // list of of_port_optical_transport_feature_header
185};
186
187struct of_exp_port_optical_transport_feature_header {
188 uint16_t feature_type == ?; // from enum ofp_port_optical_transport_feature_type
189 uint16_t length;
190};
191
192/* OTN Layer Stack Feature Encoding */ //of_port_optical_transport_layer_stack (in circuit )
193struct of_exp_port_optical_transport_layer_stack// : of_exp_port_optical_transport_feature_header
194{
195 uint16_t feature_type == 2; /* Set to OFPOTPF_LAYER_STACK */
196 uint16_t length; /* length of feature excluding padding*/
197 pad(4); /* Zero bytes-see above for sizing */
198 list(of_exp_port_optical_transport_layer_entry_t) value; /* 0 or more fields */
199};
200
201/*OTN Layer Stack Entry Encoding */ // can be found in circut of_port_optical_transport_layer_entry
202struct of_exp_port_optical_transport_layer_entry {
203 enum ofp_port_optical_transport_layer_class layer_class; /* OFPPOTL_* */
204 uint8_t signal_type; /*OFP(OTP/OCH/ODU/ODUCL)T_*/
205 enum ofp_adaptations_type adaptation;/* OFPADAPT_*/
206 pad(5); /* Align to 64-bit boundary */
207};
208
209
210
211
212