blob: 9377d6db719b528239e87b3e717264b885359993 [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
82struct of_circuit_ports_request : of_experimenter_stats_request {
83 uint8_t version;
84 uint8_t type == 18;
85 uint16_t length;
86 uint32_t xid;
87 uint16_t stats_type == 0xffff;
88 enum ofp_stats_request_flags flags;
89 pad(4);
90 uint32_t experimenter == 0x5c16c8;
91 uint32_t subtype == 15;
92};
93
94struct of_circuit_ports_reply : of_experimenter_stats_reply {
95 uint8_t version;
96 uint8_t type == 19;
97 uint16_t length;
98 uint32_t xid;
99 uint16_t stats_type == 0xffff;
100 enum ofp_stats_reply_flags flags;
101 pad(4);
102 uint32_t experimenter == 0x5c16c8;
103 uint32_t subtype == ?;
104};