Hi Ben en all, With reference to the OpenFlow Specification version 1.5 we have picked up the Implementation for B.18.4 Flow Entry Statistics Trigger EXT-335. we are reaching out to you to correct our understanding on the above requirement and help us clarify our Open questions for the same.
Technical Understanding from the EXT-335 1. From the specification it is understood that this new Instruction "OFPIT_STAT_TRIGGER" is a mechanism to synchronously send Flow entry thresholds statistics to the Controller(which is currently an application overhead). 2. From the Implementation perspective there will be two defined trigger flags to allow updated thresholds to be sent out periodically or as requested by the Controller. So here are the Bitmaps representation with the below Instruction and Flow statistics structure: enum ofp_stat_trigger_flags { OFPSTF_PERIODIC = 1 << 0, /* Trigger for all multiples of thresholds*/ OFPSTF_ONLY_FIRST = 1 << 1, /* Trigger on only first reach threshold*/ }; /* Flow statistics structure - list of statistic fields. */ struct ofp_stats { uint16_t reserved; uint16_t length; uint8_t oxs_fields[0]; /* 0 or more OXS stat fields */ uint8_t pad[4]; }; struct ofp_instruction_stat_trigger { uint16_t type; /* *OFPIT_STAT_TRIGGER* */ uint16_t len; uint32_t flags; struct ofp_stats thresholds; }; 3. The above mechanism needs to be handled for Single flow messages as well as for Multipart and the message is a status generated when one of the flow statistic threshold was crossed in a stat trigger instruction . /* Reason for generating flow stats. */ enum ofp_flow_stats_reason { OFPFSR_STATS_REQUEST = 0, /* Reply to a OFPMP_FLOW_STATS request. */ OFPFSR_STAT_TRIGGER = 1, /* Status generated by OFPIT_STAT_TRIGGER. */ }; Let us know if the above artifacts holds good to our understanding on the implementation or we missing something. Open Questions: 1. We are unclear on what is the mechanism of sending these updates to controller based on the "various statistics thresholds"? Could you please clarify on the calculation mechanism or there are predefined values which can be compared to check this operation ? How is the Controller keeping a Count / Monitor these OXS thresholds ? Or is it proactively sent once the Event is triggered based on the above Flags? 2. From the Implementation perspective we should be comparing the ofp-flow-stats values [Duration(secs/nsecs), idle_timeout, packet_count, byte_count etc.] for every OFPT_FLOW_MOD, OFPT_MULTIPART_REQUEST(currently not been supported) and then based on "any one threshold change" Or "Multiple Threshold changes" set the OFPSTF_ONLY_FIRST and OFPSTF_PERIODIC accordingly. Correct my understanding for the same ? 3. Kindly help explain the given statement from the specification and where does it apply from the messaging persepctive "The switch may drop or delay any stat trigger event due to congestion and backup on the control channel or to optimize usage of the control channel. A controller is strongly advised to use this instruction in such a way that the event rate is manageable by the switch. " Thanks & Regards Sravya Chava =====-----=====-----===== Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev