Adding OCS OpenFlow Protocol Extensions from Calient
diff --git a/openflow_input/calient_port_desc_stats b/openflow_input/calient_port_desc_stats
new file mode 100644
index 0000000..f4b3367
--- /dev/null
+++ b/openflow_input/calient_port_desc_stats
@@ -0,0 +1,92 @@
+#version 4
+
+struct of_calient_port_desc_stats_request : of_calient_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 == 0x0080F958;
+    uint32_t subtype == 1;
+};
+
+
+struct of_calient_port_desc_prop {
+    uint16_t type == ?; /* One of OFPPDPT_*. */
+    uint16_t length;    /* Length in bytes of this property. */
+};
+
+
+enum ofp_calient_optical_port_admin_state(wire_type=uint8_t, bitmask=True){
+    OFPAS_IN_SERVICE = 1,     /*Circuit Port in Service*/
+    OFPAS_OUT_OF_SERVICE = 2, /*Circuit Port out of Service*/
+    OFPAS_OOS_NP = 3          /*Circuit Port out of Service, not provisioned*/
+};
+
+enum ofp_calient_optical_port_oper_state(wire_type=uint8_t, bitmask=True){
+    OFPOS_IN_SERVICE = 8,     /*Circuit Port in Service*/
+    OFPOS_OUT_OF_SERVICE = 16 /*Circuit Port out of Service*/
+};
+
+enum ofp_calient_optical_port_oper_capability(wire_type=uint8_t, bitmask=True){
+    OFPCS_NoHardware = 1,  /* when port is not in connection */
+    OFPCS_Ok = 2,          /* port is in Connection which is made successfully */
+    OFPCS_Failed = 3,      /* when port is in Connection which is Failed */
+    OFPCS_Initializing = 4,/* when port is in Connection which is being made */
+};
+
+
+
+
+
+struct of_calient_port_desc_prop_optical : of_calient_port_desc_prop{
+    uint16_t type == 2; /* OFPPDPT_OPTICAL_CIRCUIT */
+    uint16_t length;    /* Length in bytes of this property. */
+    enum ofp_calient_optical_port_admin_state in_admin_status;
+    enum ofp_calient_optical_port_oper_state  in_oper_status;
+    enum ofp_calient_optical_port_oper_capability in_oper_capability;
+    enum ofp_calient_optical_port_admin_state out_admin_status;
+    enum ofp_calient_optical_port_oper_state  out_oper_status;
+    enum ofp_calient_optical_port_oper_capability out_oper_capability;
+    of_str6_t inport_power;       /* Input Port Power */
+    of_str6_t outport_power;      /* Output Port Power */
+    pad(2);
+    uint64_t in_peer_node;        /* Peer node datapath id connected to the input optical port */
+    uint64_t out_peer_node;       /* Peer node datapath id connected to the output optical port */
+    uint16_t in_peer_port;        /* Peer port number connected to the input optical port */
+    uint16_t out_peer_port;       /* Peer port number connected to the output optical port */
+    pad(4);
+    of_str32_t in_circuit_id;     /* Circuit Id associated with the input port */
+    of_str32_t out_circuit_id;    /* Circuit id associated with the output port */
+    of_str64_t in_alias;          /* Alias(name) for the input port */
+    of_str64_t out_alias;         /* Alias(name) for the output port */
+};
+
+struct of_calient_port_desc_stats_entry {
+    uint16_t length;
+    pad(2);
+    of_port_no_t port_no;
+    of_mac_addr_t hw_addr;
+    pad(2);
+    of_port_name_t name; /* Not used.NULL */
+    uint32_t config;     /* Not used. Always 0. */
+    uint32_t state;      /* Not used. Always 0. */
+    list(of_calient_port_desc_prop_t) properties;
+};
+
+struct of_calient_port_desc_stats_reply : of_calient_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 == 0x0080F958;
+    uint32_t subtype == 1;
+    list(of_calient_port_desc_stats_entry_t)port_desc;
+};
+
+