[ovs-discuss] How to buffer on OVS

Hiroshi Miyata miyahiro.dazu at gmail.com
Fri May 3 05:24:00 UTC 2013


Thanks Ben for your time and investigation.

 > I did not look up whether this particular aspect of OpenFlow 1.3 
support is a matter of conformance, but it could be improved.

I wish so.

 > Please consider contributing improvements.

Though I am not good developer, I will contribute for the improvement 
somehow with my best.

Regards,

...hiroshi miyata

(13/05/03 12:59), Ben Pfaff wrote:
> OpenFlow 1.3 support is incomplete, as documented in the FAQ and
> OPENFLOW-1.1+.  I did not look up whether this particular aspect of
> OpenFlow 1.3 support is a matter of conformance, but it could be
> improved.  Please consider contributing improvements.
>
> On Fri, May 03, 2013 at 11:12:03AM +0900, Hiroshi Miyata wrote:
>> Hi Ben,
>>
>> In OpenFlow 1.3.1, the switch needs explict table-miss entry to be added,
>> otherwise the packet which does not match any entry is discarded.
>> The table-miss entry needs OFPAT_OUTPUT output action to OFPP_CONTROLLER.
>>
>> -----------------------------
>> OpenFlow1.3.1
>> 5.4 Table-miss (last paragraph)
>> If the table-miss flow entry does not exist, by default packets
>> unmatched by flow entries are dropped
>> (discarded). A switch configuration, for example using the OpenFlow
>> Configuration Protocol, may
>> override this default and specify another behaviour.
>> -----------------------------
>>
>> Therefore,
>>
>>> In OVS, no packet_in message that results from an action ever
>> allocates a buffer.
>>
>> It seems to happen to Table-miss entry.
>>
>>> Only a packet_in message that results from a flow table miss
>> allocates a buffer.
>>
>> If you supporse no action is specified to the table-miss entry, it
>> does not seem to happen.
>>
>> With above mentioned condition, OVS working in OpenFlow1.3.1 will
>> not buffer the packet at all, correct?
>>
>>
>> BTW.
>> Regarding to the Reason code.
>>
>> According to OpenFlow1.3.1
>> A.4.1 Packet-In Message
>> At the bottom of Page 92
>> ----------------------------
>> /* Why is this packet being sent to the controller? */
>> enum ofp_packet_in_reason {
>> OFPR_NO_MATCH = 0, /* No matching flow (table-miss flow entry). */
>> OFPR_ACTION = 1, /* Action explicitly output to controller. */
>> OFPR_INVALID_TTL = 2, /* Packet has invalid TTL */
>> };
>> ----------------------------
>>
>> OFPR_NO_MATCH seems to be appropriate reason for table-miss entry
>> even though it is the result of action.
>> Otherwise, OFPR_NO_MATCH will not be used at all.
>>
>> How do you think?
>>
>> ...hiroshi miyata
>>
>> (13/05/03 8:36), Ben Pfaff wrote:
>>> On Fri, May 03, 2013 at 08:32:10AM +0900, Hiroshi Miyata wrote:
>>>> Then, in what action requests to buffer?
>>>> Sorry, I could not find appropriate part in the specification.
>>> In OVS, no packet_in message that results from an action ever
>>> allocates a buffer.  Only a packet_in message that results from a flow
>>> table miss allocates a buffer.




More information about the discuss mailing list