blob: 7e0201446d5a66ec1ef78cbdb8e42607a38c00bf [file] [log] [blame]
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -07001#version 4
2
3/* WDM grid types */
4enum ofp_grid_type {
5 OFPGRIDT_RES = 0,
6 OFPGRIDT_DWDM = 1,
7 OFPGRIDT_CWDM = 2,
8 OFPGRIDT_FLEX = 3,
9};
10
11/* WDM grid channel spacing */
12enum ofp_channel_spacing {
13 OFPCS_RES = 0,
14 OFPCS_GHZ_100 = 1,
15 OFPCS_GHZ_50 = 2,
16 OFPCS_GHZ_24 = 3,
17 OFPCS_GHZ_12P5 = 4, /* 12.5 GHZ */
18 OFPCS_GHZ_6P25 = 5, /* 6.25 GHZ */
19};
20
21/* Layer classes (families) supported for optical transport port. */
Yafit Hadarf8caac02015-08-25 10:21:44 +030022enum ofp_port_optical_transport_layer_class(wire_type=uint8_t){
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070023 OFPPOTL_PORT = 1, /* Class of base port layer signal types */
24 OFPPOTL_OCH = 2, /* Class of OCH layer signal types*/
25 OFPPOTL_ODU = 3, /* Class of ODU layer signal types*/
26 OFPPOTL_ODUCLT = 4, /* Class of ODU client layer signal types*/
27};
28
29/* Base port layer signal types */
30enum ofp_otport_signal_type {
31 OFPOTPT_OTSn = 1,
32 OFPOTPT_OMSn = 2,
33 OFPOTPT_OPSn = 3,
34 OFPOTPT_OPSM = 4,
35 OFPOTPT_OCH = 5,
36 OFPOTPT_OTU1 = 11,
37 OFPOTPT_OTU2 = 12,
38 OFPOTPT_OTU3 = 13,
39 OFPOTPT_OTU4 = 14,
40};
41
42/* OCH layer signal types */
43enum ofp_och_signal_type {
44 OFPOCHT_FIX_GRID = 1,
45 OFPOCHT_FLEX_GRID = 2,
46};
47
Praseed Balakrishnan2ed6da02014-09-18 17:02:48 -070048// Not used .. just for info on structure.
49struct ofp_och_signal_id {
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070050 uint8_t grid; //Type of WDM grid - OFPGRIDT_*
51 uint8_t cs; //Channel Spacing - OFPCS_*
52 uint16_t n; // Used to calculate frequency as in [ITU G.694.1]
53 // Frequency(THz)= 193.1 THz + n * chan_spacing
54 uint16_t m; // Used to calculate spectral width [ITU G.694.1]
55 // Spectral Width (GHz) = m * 12.5
56 // For fix grid networks, m=1
57};
58
Praseed Balakrishnan2ed6da02014-09-18 17:02:48 -070059struct of_oxm_och_sigtype : of_oxm {
60 uint32_t type_len == 0x00085801;
61 uint8_t value;
62};
63
64struct of_oxm_och_sigid : of_oxm {
65 uint32_t type_len == 0x00085A06;
66 of_sig_id_t value;
67};
68
69struct of_oxm_och_sigtype_basic : of_oxm {
70 uint32_t type_len == 0x80005801;
71 uint8_t value;
72};
73
74struct of_oxm_och_sigid_basic : of_oxm {
75 uint32_t type_len == 0x80005A06;
76 of_sig_id_t value;
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070077};
78
79
Praseed Balakrishnan2ed6da02014-09-18 17:02:48 -070080struct of_action_circuit : of_action_experimenter {
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070081 uint16_t type == 65535;
82 uint16_t len;
Praseed Balakrishnan2ed6da02014-09-18 17:02:48 -070083 uint32_t experimenter == 0x748771;
84 uint16_t subtype == 25;
85 uint16_t hlength == 16; // fix length of OXM field
86 of_oxm_t field;
87 pad(2);
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070088};
89
Praseed Balakrishnan7f718782014-09-18 17:02:48 -070090
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070091struct of_circuit_ports_request : of_experimenter_stats_request {
92 uint8_t version;
93 uint8_t type == 18;
94 uint16_t length;
95 uint32_t xid;
96 uint16_t stats_type == 0xffff;
97 enum ofp_stats_request_flags flags;
98 pad(4);
Praseed Balakrishnan7f718782014-09-18 17:02:48 -070099 uint32_t experimenter == 0x748771;
100 uint32_t subtype == 13;
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -0700101};
102
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700103
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -0700104struct of_circuit_ports_reply : of_experimenter_stats_reply {
105 uint8_t version;
106 uint8_t type == 19;
107 uint16_t length;
108 uint32_t xid;
109 uint16_t stats_type == 0xffff;
110 enum ofp_stats_reply_flags flags;
111 pad(4);
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700112 uint32_t experimenter == 0x748771;
113 uint32_t subtype == 13;
114 list(of_port_optical_t) entries;
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -0700115};
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700116
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700117struct of_port_optical {
118 of_port_no_t port_no;
119 uint16_t length;
120 pad(2);
121 of_mac_addr_t hw_addr;
122 pad(2);
123 of_port_name_t name;
124 enum ofp_port_config config;
125 enum ofp_port_state state;
126 list(of_port_desc_prop_optical_transport_t) desc;
127};
128
129struct of_port_desc_prop_optical_transport {
130 uint16_t type;
131 uint16_t length;
132 uint8_t port_signal_type;
133 uint8_t reserved;
Praseed Balakrishnandb949d42014-12-02 14:28:20 -0800134 pad(1);
135 uint8_t port_type;
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700136};
137
Praseed Balakrishnandb949d42014-12-02 14:28:20 -0800138struct of_circuit_port_status : of_experimenter {
139 uint8_t version;
140 uint8_t type == 4;
141 uint16_t length;
142 uint32_t xid;
143 uint32_t experimenter == 0x748771;
144 uint32_t exp_type == 12;
145 enum ofp_port_reason reason;
146 pad(7);
147 of_port_no_t port_no;
148 uint16_t lengths;
149 pad(2);
150 of_mac_addr_t hw_addr;
151 pad(2);
152 of_port_name_t name;
153 enum ofp_port_config config;
154 enum ofp_port_state state;
155 uint64_t ignore;
156};
157
158
159
160
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700161struct of_port_optical_transport_application_code
162{
163 uint16_t feature_type;
164 uint8_t oic_type;
165 of_app_code_t app_code;
166};
167
168
169struct of_port_optical_transport_layer_entry {
170 uint8_t layer_class;
171 uint8_t signal_type;
172 uint8_t adaptation;
173 pad(5);
174};
175
176
177/* ODU Layer Stack Feature Encoding */
178struct of_port_optical_transport_layer_stack {
179 uint16_t feature_type;
180 uint16_t length;
181 pad(4);
182 list(of_port_optical_transport_layer_entry_t) entries;
183};
184