| /* This file input supports the Optical Transport Protocol Extentions - version 1.0 */ |
| |
| #version 4 |
| /*Supported signal types for layer class OFPOTPL_ODU */ |
| enum ofp_odu_signal_type (wire_type=uint8_t) { |
| OFPODUT_ODU1 = 1, |
| OFPODUT_ODU2 = 2, |
| OFPODUT_ODU3 = 3, |
| OFPODUT_ODU4 = 4, |
| OFPODUT_ODU0 = 10, |
| OFPODUT_ODU2E = 11, |
| OFPODUT_ODUfCBR = 20, |
| OFPODUT_ODUfGFPfHAO = 21, |
| OFPODUT_ODUfGFPf = 22, |
| }; |
| |
| |
| //enum ofp_experimenter_multipart_type_exp (wire_type=uint32_t){ |
| //OFPEMPTE = 1, /*extended port discription */ |
| //OFPEMPAD = 2, /*extended port adjacency discovery */ |
| //}; |
| |
| //enum ofp_port_desc_prop_type_exp (wire_type=uint32_t){ |
| //OFPPDPT_OPTICAL_TRAMSPORT = 2, |
| //OFPPDPT_ADJACENCY_DISCOVERY = 3, |
| //}; |
| |
| /* Supported signal types for layer class OFPPOTL_PORT */ |
| enum ofp_port_optical_transport_signal_type (wire_type=uint8_t) { |
| OFPPOTST_OTSn = 1, |
| OFPPOTST_OMSn = 2, |
| OFPPOTST_OPSn = 3, |
| OFPPOTST_OPSM = 4, |
| OFPPOTST_OCH = 5, |
| OFPPOTST_OTU1 = 11, |
| OFPPOTST_OTU2 = 12, |
| OFPPOTST_OTU3 = 13, |
| OFPPOTST_OTU4 = 14, |
| }; |
| |
| |
| /* Features of optical transport ports available in switch. */ |
| enum ofp_port_optical_transport_feature_type (wire_type=uint16_t) { |
| OFPPOTFT_OPT_INTERFACE_CLASS = 1, /* Application code/ID encoding */ |
| OFPPOTFT_LAYER_STACK = 2, /* Supported signal types and adaptations */ |
| }; |
| |
| |
| /*Supported signal types for layer class OFPOTPL_ODUCLT */ |
| enum ofp_oduclt_signal_type(wire_type=uint8_t) { |
| OFPODUCLT_STM16 = 1, |
| OFPODUCLT_STM64 = 2, |
| OFPODUCLT_STM256 = 3, |
| OFPODUCLT_STM1 = 4, |
| OFPODUCLT_STM4 = 5, |
| OFPODUCLT_GBE1 = 6, |
| OFPODUCLT_GBE10 = 7, |
| OFPODUCLT_GBE40 = 8, |
| OFPODUCLT_GBE100 = 9, |
| OFPODUCLT_FC100 = 10, |
| OFPODUCLT_FC200 = 11, |
| OFPODUCLT_FC400 = 12, |
| OFPODUCLT_FC800 = 13, |
| OFPODUCLT_FC1200 = 14, |
| OFPODUCLT_GPON = 15, |
| OFPODUCLT_XGPON = 16, |
| OFPODUCLT_IB_SDR = 17, |
| OFPODUCLT_IB_DDR = 18, |
| OFPODUCLT_IB_QDR = 19, |
| OFPODUCLT_SBCON_ESCON = 20, |
| OFPODUCLT_DVBASI = 21, |
| OFPODUCLT_SDI = 22, |
| OFPODUCLT_SDI1G5 = 23, |
| OFPODUCLT_SDI3G = 24, |
| OFPODUCLT_ATM = 25, |
| OFPODUCLT_ETH = 26, |
| OFPODUCLT_MPLS = 27, |
| OFPODUCLT_IP = 28, |
| }; |
| |
| /* Supported adaptations for optical transport port layer stack*/ |
| enum ofp_adaptations_type (wire_type=uint8_t){ |
| OFPADAPT_OTS_OMS = 1, |
| OFPADAPT_OMS_OCH = 2, |
| OFPADAPT_OPS_OCHr = 3, |
| OFPADAPT_OPSM_OTUk = 4, |
| OFPADAPT_OCH_OTUk = 5, |
| OFPADAPT_ODUk_ODUij = 6, |
| OFPADAPT_ODUk_ODUj21 = 7, |
| OFPADAPT_ODUkh_ODUj21 = 8, |
| OFPADAPT_ODU0_CBRx = 9, |
| OFPADAPT_ODUk_CBRx = 10, |
| OFPADAPT_ODUk_CBRxg = 11, |
| OFPADAPT_ODUk_RSn = 12, |
| OFPADAPT_ODUk_ATM = 13, |
| OFPADAPT_ODUk_ETH = 14, |
| OFPADAPT_ODUkh_ETH = 15, |
| OFPADAPT_ODUk_ETHPPOS = 16, |
| }; |
| |
| struct of_oxm_exp_odu_sigtype : of_oxm { |
| uint32_t type_len == 0xFFFF0401; |
| uint32_t experimenter == 0xFF000007; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_exp_odu_sig_id : of_oxm { |
| uint32_t type_len == 0xFFFF0610; |
| uint32_t experimenter == 0xFF000007; |
| of_odu_sig_id_t value;// size of this struct is 16 bytes 2+2+10+2(pad) |
| }; |
| |
| //This struct defenition is unnecessury for the openflow java ("make java" command ) |
| //It is reqiured for wireshark dissector ("make wireshark" command) |
| struct of_odu_sig_id_t { |
| uint16_t tpn; //Tributary Port Number |
| uint16_t length; // Number of Tributary Slots included in tsmap, |
| // based on the Server ODU type and TS Granularity |
| of_octets_t tsmap; //tsmap; |
| }; |
| |
| struct of_oxm_exp_och_sigtype : of_oxm { |
| uint32_t type_len == 0xFFFF0801; |
| uint32_t experimenter == 0xFF000007; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_exp_och_sig_id : of_oxm { |
| uint32_t type_len == 0xFFFF0A06; |
| uint32_t experimenter == 0xFF000007; |
| of_och_sig_id_t value; |
| }; |
| |
| // Optical transport protocol extensions request & reply head |
| struct of_exp_optical_ext_request : of_experimenter_stats_request { |
| uint8_t version; |
| uint8_t type == 18; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_request_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == ?; |
| }; |
| |
| struct of_exp_optical_ext_reply : of_experimenter_stats_reply { |
| uint8_t version; |
| uint8_t type == 19; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_reply_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == ?; |
| }; |
| |
| // open flow extention - support port description Extentions for OTN Ports |
| struct of_exp_port_desc_request : of_exp_optical_ext_request { |
| uint8_t version; |
| uint8_t type == 18; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_request_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == 1;//enum ofp_experimenter_multipart_type exp_type == 1; |
| }; |
| |
| struct of_exp_port_desc_reply : of_exp_optical_ext_reply { |
| uint8_t version; |
| uint8_t type == 19; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_reply_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == 1;//enum ofp_experimenter_multipart_type subtype == 1; |
| list(of_exp_port_t) entries; |
| }; |
| |
| struct of_exp_port { |
| of_port_no_t port_no; |
| uint16_t length; |
| pad(2); |
| of_mac_addr_t hw_addr; |
| pad(2); |
| of_port_name_t name; |
| enum ofp_port_config config; |
| enum ofp_port_state state; |
| list(of_exp_port_desc_prop_optical_transport_t) properties; |
| }; |
| |
| struct of_exp_port_des_prop_header { |
| uint16_t type == 2; //enum ofp_port_desc_prop_type_exp type == 2; |
| uint16_t length; |
| }; |
| |
| struct of_exp_port_desc_prop_optical_transport // : of_exp_port_des_prop_header |
| { |
| uint16_t type == 2; |
| uint16_t length; // length in bytes of this property |
| enum ofp_port_optical_transport_signal_type port_signal_type; |
| //base port layer signal type (enum ofp_port_optical_transport_signal_type) |
| uint8_t reserved; |
| pad(2); |
| list(of_exp_port_optical_transport_layer_stack_t) features; // list of of_port_optical_transport_feature_header |
| }; |
| |
| struct of_exp_port_optical_transport_feature_header { |
| uint16_t feature_type == ?; // from enum ofp_port_optical_transport_feature_type |
| uint16_t length; |
| }; |
| |
| /* OTN Layer Stack Feature Encoding */ //of_port_optical_transport_layer_stack (in circuit ) |
| struct of_exp_port_optical_transport_layer_stack// : of_exp_port_optical_transport_feature_header |
| { |
| uint16_t feature_type == 2; /* Set to OFPOTPF_LAYER_STACK */ |
| uint16_t length; /* length of feature excluding padding*/ |
| pad(4); /* Zero bytes-see above for sizing */ |
| list(of_exp_port_optical_transport_layer_entry_t) value; /* 0 or more fields */ |
| }; |
| |
| /*OTN Layer Stack Entry Encoding */ // can be found in circut of_port_optical_transport_layer_entry |
| struct of_exp_port_optical_transport_layer_entry { |
| enum ofp_port_optical_transport_layer_class layer_class; /* OFPPOTL_* */ |
| uint8_t signal_type; /*OFP(OTP/OCH/ODU/ODUCL)T_*/ |
| enum ofp_adaptations_type adaptation;/* OFPADAPT_*/ |
| pad(5); /* Align to 64-bit boundary */ |
| }; |
| |
| |
| // open flow extention - support port adjacency extentions |
| /* SubTLVs used for send, expected and received identity strings */ |
| //enum ofp_exp_ext_port_tlv_types (wire_type=uint8_t) { |
| // OFP_EXP_EXT_PORT_TLV_AD_ID_SENT = 2, //TTI to be send by the port |
| // OFP_EXP_EXT_PORT_TLV_AD_ID_RECEIVED = 4, //TTI rcvd on port |
| //}; |
| |
| /* used in state field in ofp_port */ |
| //enum ofp_port_state (wire_type=uint8_t) { |
| // OPPPS_AD_ID_MISMATCH = 1 << 16 |
| //}; |
| |
| /* used in config field in ofp_port */ |
| //enum ofp_port_config { |
| // OFPPF_AD_ENABL = 1<< 16, |
| // OFPPF_AIS_AD_ID_MISMATCH = 1 << 17 |
| //}; |
| |
| struct of_exp_port_adjacency_request : of_exp_optical_ext_request { |
| uint8_t version; |
| uint8_t type == 18; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_request_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == 2;//enum ofp_experimenter_multipart_type exp_type == 2; |
| }; |
| |
| struct of_exp_port_adjacency_reply : of_exp_optical_ext_reply { |
| uint8_t version; |
| uint8_t type == 19; |
| uint16_t length; |
| uint32_t xid; |
| uint16_t stats_type == 0xffff; |
| enum ofp_stats_reply_flags flags; |
| pad(4); |
| uint32_t experimenter == 0xFF000007; |
| uint32_t subtype == 2;//enum ofp_experimenter_multipart_type subtype == 2; |
| list(of_exp_port_adjacency_t) entries; |
| }; |
| |
| //Port adjacency discovery property, |
| //the body of ofp_experimenter_port in the spec. |
| struct of_exp_port_adjacency { |
| of_port_no_t port_no; |
| uint16_t length; |
| pad(2); |
| of_mac_addr_t hw_addr; |
| pad(2); |
| of_port_name_t name; |
| enum ofp_port_config config; |
| enum ofp_port_state state; |
| list(of_exp_port_adjacency_id_t) properties; |
| }; |
| |
| //coresponding to ofp_port_desc_prop_adjacency_discovery in the spec |
| //with adjecency id definition for otn network |
| struct of_exp_port_adjacency_id |
| { |
| uint16_t type == 3; //enum ofp_port_desc_prop_type_exp type == 3 |
| uint16_t length; // length in bytes of this property |
| list(of_exp_ext_ad_id_t) ad_id; |
| }; |
| |
| struct of_exp_ext_ad_id |
| { |
| uint16_t type;//enum ofp_exp_ext_port_tlv_types type; |
| uint16_t length; // The TLV value field length. |
| //defined as 8 + the length of id[] field |
| uint16_t namespace == 0; // One of OFPHTN*. OFPHTN_ONF = 0 |
| uint16_t ns_type == ?; // type witin namespace |
| }; |
| |
| struct of_exp_port_adid_otn : of_exp_ext_ad_id |
| { |
| uint16_t type; // ofp_exp_ext_port_tlv_types type; |
| uint16_t length; // The TLV value field length. |
| //defined as 8 + the length of id[] field |
| uint16_t namespace == 0; // One of OFPHTN*. OFPHTN_ONF = 0 |
| uint16_t ns_type == 0; // type witin namespace |
| of_bitmap_128_t sapi; //source asccess point identifier, ex.ITUT G.831 |
| of_bitmap_128_t dapi; //destination asccess point identifier,ex. ITUT G.831 |
| of_bitmap_256_t opspec;//Operator specific value, ex. ITUT G.7714 |
| }; |
| |
| struct of_exp_ext_adid_sonet : of_exp_ext_ad_id |
| { |
| uint16_t type; //enum ofp_exp_ext_port_tlv_types type; |
| uint16_t length; // The TLV value field length. |
| //defined as 8 + the length of id[] field |
| uint16_t namespace == 0; // One of OFPHTN*. OFPHTN_ONF = 0 |
| uint16_t ns_type == 1; // type witin namespace |
| of_bitmap_128_t id; |
| }; |