blob: 87be0236fbb550704f6357eb96fea44fb0c62461 [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. */
22enum ofp_port_optical_transport_layer_class {
23 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
48
49struct oxm_of_och_sig_id {
50
51 uint8_t grid; //Type of WDM grid - OFPGRIDT_*
52 uint8_t cs; //Channel Spacing - OFPCS_*
53 uint16_t n; // Used to calculate frequency as in [ITU G.694.1]
54 // Frequency(THz)= 193.1 THz + n * chan_spacing
55 uint16_t m; // Used to calculate spectral width [ITU G.694.1]
56 // Spectral Width (GHz) = m * 12.5
57 // For fix grid networks, m=1
58};
59
60// circuit extension message
61struct of_circuit_header : of_experimenter {
62 uint8_t version;
63 uint8_t type == 4;
64 uint16_t length;
65 uint32_t xid;
66 uint32_t experimenter == 0xffff;
67 uint32_t subtype == ?;
68 uint8_t sigtype;
69 oxm_of_och_sig_id_t sig_id;
70};
71
72
73
74// circuit extension action
75struct of_action_circuit: of_action_experimenter {
76 uint16_t type == 65535;
77 uint16_t len;
78 uint32_t experimenter == 0xffff;
79
80};
81
Praseed Balakrishnan7f718782014-09-18 17:02:48 -070082
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070083struct of_circuit_ports_request : of_experimenter_stats_request {
84 uint8_t version;
85 uint8_t type == 18;
86 uint16_t length;
87 uint32_t xid;
88 uint16_t stats_type == 0xffff;
89 enum ofp_stats_request_flags flags;
90 pad(4);
Praseed Balakrishnan7f718782014-09-18 17:02:48 -070091 uint32_t experimenter == 0x748771;
92 uint32_t subtype == 13;
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070093};
94
Praseed Balakrishnan7f718782014-09-18 17:02:48 -070095
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -070096struct of_circuit_ports_reply : of_experimenter_stats_reply {
97 uint8_t version;
98 uint8_t type == 19;
99 uint16_t length;
100 uint32_t xid;
101 uint16_t stats_type == 0xffff;
102 enum ofp_stats_reply_flags flags;
103 pad(4);
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700104 uint32_t experimenter == 0x748771;
105 uint32_t subtype == 13;
106 list(of_port_optical_t) entries;
Praseed Balakrishnanf78068b2014-09-04 10:30:40 -0700107};
Praseed Balakrishnan7f718782014-09-18 17:02:48 -0700108
109
110struct of_port_optical {
111 of_port_no_t port_no;
112 uint16_t length;
113 pad(2);
114 of_mac_addr_t hw_addr;
115 pad(2);
116 of_port_name_t name;
117 enum ofp_port_config config;
118 enum ofp_port_state state;
119 list(of_port_desc_prop_optical_transport_t) desc;
120};
121
122struct of_port_desc_prop_optical_transport {
123 uint16_t type;
124 uint16_t length;
125 uint8_t port_signal_type;
126 uint8_t reserved;
127 pad(2);
128};
129
130struct of_port_optical_transport_application_code
131{
132 uint16_t feature_type;
133 uint8_t oic_type;
134 of_app_code_t app_code;
135};
136
137
138struct of_port_optical_transport_layer_entry {
139 uint8_t layer_class;
140 uint8_t signal_type;
141 uint8_t adaptation;
142 pad(5);
143};
144
145
146/* ODU Layer Stack Feature Encoding */
147struct of_port_optical_transport_layer_stack {
148 uint16_t feature_type;
149 uint16_t length;
150 pad(4);
151 list(of_port_optical_transport_layer_entry_t) entries;
152};
153