Clean up LINC-OE extensions (ONOS-2920).

Change-Id: Iad0087617bad89f0bd6b6d31d95d8c53007711e6
diff --git a/openflow_input/linc b/openflow_input/linc
new file mode 100644
index 0000000..09e3784
--- /dev/null
+++ b/openflow_input/linc
@@ -0,0 +1,176 @@
+/* This file input supports FlowForwarding LINC-OE optical switch. */
+
+#version 4
+
+/* WDM grid types */
+enum ofp_grid_type {
+    OFPGRIDT_RES    = 0,
+    OFPGRIDT_DWDM   = 1,
+    OFPGRIDT_CWDM   = 2,
+    OFPGRIDT_FLEX   = 3,
+};
+
+/* WDM grid channel spacing */
+enum ofp_channel_spacing {
+    OFPCS_RES       = 0,
+    OFPCS_GHZ_100    = 1,
+    OFPCS_GHZ_50     = 2,
+    OFPCS_GHZ_24     = 3,
+    OFPCS_GHZ_12P5   = 4,        /* 12.5 GHZ */
+    OFPCS_GHZ_6P25   = 5,        /* 6.25 GHZ */
+};
+
+/* Layer classes (families) supported for optical transport port. */
+enum ofp_port_optical_transport_layer_class(wire_type=uint8_t){
+    OFPPOTL_PORT   = 1,           /* Class of base port layer signal types */
+    OFPPOTL_OCH    = 2,           /* Class of OCH layer signal types*/
+    OFPPOTL_ODU    = 3,           /* Class of ODU layer signal types*/
+    OFPPOTL_ODUCLT = 4,           /* Class of ODU client layer signal types*/
+};
+
+/* Base port layer signal types */
+enum ofp_otport_signal_type {
+    OFPOTPT_OTSn           = 1,
+    OFPOTPT_OMSn           = 2,
+    OFPOTPT_OPSn           = 3,
+    OFPOTPT_OPSM           = 4,
+    OFPOTPT_OCH            = 5,
+    OFPOTPT_OTU1           = 11,
+    OFPOTPT_OTU2           = 12,
+    OFPOTPT_OTU3           = 13,
+    OFPOTPT_OTU4           = 14,
+};
+
+/* OCH layer signal types */
+enum ofp_och_signal_type {
+    OFPOCHT_FIX_GRID       = 1,
+    OFPOCHT_FLEX_GRID      = 2,
+};
+
+// Not used .. just for info on structure.
+struct ofp_och_signal_id {
+     uint8_t grid;            //Type of WDM grid - OFPGRIDT_*
+     uint8_t cs;              //Channel Spacing - OFPCS_*
+     uint16_t n;             // Used to calculate frequency as in [ITU G.694.1]
+                             // Frequency(THz)= 193.1 THz + n * chan_spacing
+     uint16_t m;             // Used to calculate spectral width [ITU G.694.1]
+                             // Spectral Width (GHz) = m * 12.5
+                            // For fix grid networks, m=1
+};
+
+struct of_oxm_och_sigtype : of_oxm {
+    uint32_t type_len == 0x80005801;
+    uint8_t value;
+};
+
+struct of_oxm_och_sigid : of_oxm {
+    uint32_t type_len == 0x80005A06;
+    of_sig_id_t value;
+};
+
+
+struct of_action_circuit : of_action_experimenter {
+    uint16_t type == 65535;
+    uint16_t len;
+    uint32_t experimenter == 0x748771;
+    uint16_t subtype == 25;
+    uint16_t hlength == 16; // fix length of OXM field
+    of_oxm_t field;
+    pad(2);
+};
+
+
+struct of_circuit_ports_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 == 0x748771;
+    uint32_t subtype == 13;
+};
+
+
+struct of_circuit_ports_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 == 0x748771;
+    uint32_t subtype == 13;
+    list(of_port_optical_t) entries;	
+};
+
+struct of_port_optical {
+    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_port_desc_prop_optical_transport_t) desc; 					
+};
+
+struct of_port_desc_prop_optical_transport {
+   uint16_t type; 
+   uint16_t length;
+   uint8_t port_signal_type; 
+   uint8_t reserved;
+   pad(1);
+   uint8_t port_type;	
+};
+
+struct of_circuit_port_status : of_experimenter {
+    uint8_t version;
+    uint8_t type == 4;
+    uint16_t length;
+    uint32_t xid;
+    uint32_t experimenter == 0x748771;
+    uint32_t exp_type == 12;
+    enum ofp_port_reason reason;
+    pad(7);
+    of_port_no_t port_no;
+    uint16_t lengths;
+    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;
+    uint64_t ignore;	
+};
+
+ 
+
+
+struct of_port_optical_transport_application_code 
+{
+   uint16_t feature_type; 
+   uint8_t oic_type; 
+   of_app_code_t app_code;
+};
+
+
+struct of_port_optical_transport_layer_entry {
+   uint8_t layer_class; 
+   uint8_t signal_type;
+   uint8_t adaptation;
+   pad(5);
+};
+
+
+/* ODU Layer Stack Feature Encoding */
+struct of_port_optical_transport_layer_stack {
+   uint16_t feature_type; 
+   uint16_t length; 
+   pad(4); 
+   list(of_port_optical_transport_layer_entry_t) entries; 
+};
+