On Thu, Sep 29, 2016 at 04:40:04PM +0530, Sravya Chava/HYD/TCS wrote:
> 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
I don't understand the distinction you're making here. What is a single
flow message? What is a multipart flow message?
> 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 ?
I don't understand the question. The instruction defines the
thresholds. The specification includes this example:
The thresholds is a list of statistic field thresholds. When one of
the statistic field values of the flow entry crosses its threshold a
stat trigger event is sent to the controller. The flow entry is
unmodified by this operation. For example, if the threshold list
includes a byte count of 10000, when the flow entry byte count goes
from 9000 to 10500, a message must be generated.
> 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?
I don't think that the controller keeps track of anything. Instead, the
switch sends a multipart flow stats message when a trigger threshold is
crossed:
When a stat trigger event must be sent to the controller, the switch
must add a flow stats entry with reason OFPFSR_STAT_TRIGGER in a
flow stats multipart message (see 7.3.5.3), and that message must be
sent to the controller.
> 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 ?
I don't understand the question. Thresholds are triggered by packets,
not by controller requests.
> 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. "
If the switch can't send a multipart flow stats message resulting from a
trigger immediately, because its TCP socket buffer is full, it can send
it later or drop it.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev