Details
-
Bug
-
Status: Resolved
-
Resolution: Won't Do
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
14
Description
Openflow specs 1.0 says that 1.0 compliant switch should send the following details to the controller with flow removal event
/* Flow removed (datapath -> controller). */
struct ofp_flow_removed {
struct ofp_header header;
struct ofp_match match; /* Description of fields. */
uint64_t cookie; /* Opaque controller-issued identifier. */
uint16_t priority; /* Priority level of flow entry. */
uint8_t reason; /* One of OFPRR_*. */
uint8_t pad[1]; /* Align to 32-bits. */
uint32_t duration_sec; /* Time flow was alive in seconds. */
uint32_t duration_nsec; /* Time flow was alive in nanoseconds beyond
duration_sec. */
uint16_t idle_timeout; /* Idle timeout from original flow mod. */
uint8_t pad2[2]; /* Align to 64-bits. */
uint64_t packet_count;
uint64_t byte_count;
};
Current implementation of flowprogrammer is not relaying following info from the above structure to its flow removal event listener.
uint8_t reason; /* One of OFPRR_*. */
uint32_t duration_sec; /* Time flow was alive in seconds. */
uint32_t duration_nsec; /* Time flow was alive in nanoseconds beyond
duration_sec. */
uint64_t packet_count;
uint64_t byte_count;
Alessandro mentioned that FlowOnNode class is better choice for relaying all the above mentioned details to the listener. But FlowOnNode does not relay [uint8_t reason ] parameter, so it requires some thought.