On Wed, Jun 11, 2014 at 01:34:42PM +0900, Simon Horman wrote:
> Buffer a multi-part requests until all its parts are received.
> 
> This is achieved by initialising the list_node field of messages
> and passing them to ofmp_req_filter().
> 
> * If the message is not recognised as part of a multi-part requests it is
>   simply returned and processing continues as before.
> 
> * If the messages part of a multipart request but is not the last message
>   of that request then it is buffered and ofmp_req_filter() returns NULL
>   indicating that the message should be skipped for now.
> 
> * Otherwise, if the message is the last part of a multipart request then
>   the first message that is the part of the request is returned and any
>   subsequent parts are accessible via its list_head field.
> 
> Some implementation notes:
> 
> * As the list_head field may now contain messages ofpbuf_list_delete
>   should be used to delete them as necessary.
> 
> * This places a limit of OFCONN_MP_REQ_MAX (=1024) on the
>   number of multipart requests may be buffered.
> 
> * This code should have no affect on message handling at this
>   time as ofpmsg_may_buffer_mp_request() always returns false.
>   It should be updated along with support for traversing
>   the list_head field of messages when adding multipart request
>   support to individual message types.
> 
> Signed-off-by: Simon Horman <[email protected]>
> 
> ---
> v2
> * Use ofpmsg_may_buffer_mp_request() to only buffer messages for
>   which buffering is enabled. Currently there are none.
> * Annotate mp_reqs field of struct ofconn with OVS_GUARDED_BY(ofproto_mutex)
> * Add locking
> * Add limitation on the number of messages that may be buffered

This looks OK at first glance but it needs a rebase due to recent
connmgr changes.

Thanks,

Ben.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to