Hello,


We are considering porting OVS datapath to a new ASIC hardware platform by
writing a provider for the hardware. We have few basic design questions
that we are looking to get some feedback on:

1) We are trying to decide whether to implement the provider
rule->construct, destruct routines synchronously or asynchronously. One
hardware flow update generally takes less than 1 ms on single ASIC but can
take several ms if several ASICs have to be updated and some of the ASICs
are not on the same board (stacking/chassis designs) and RPC has to done to
update the remote ASICs.

With a synchronous rule provider, the concern is that ofproto can get
blocked when the controller is trying to update several hundred flows. This
may cause couple of issues:

- Controller will get blocked/slow updating the flows on a switch and may
not be able to service flow updates for other switches
- Controller may not be able to send control keepalive packets if it is
implementing a time sensitive protocol and ofproto is serializing all the
operations

Do you think these are valid concerns? Making the rule routines
asynchronous adds more complexity to the implementation, so we want to make
sure there would be benefits of going the asynchronous path.

b)  Assuming we do asynchronous rule operations, what does ofproto do when
a rule construct fails. Does it send asynchronous message to the controller
informing the flow could not be added. We are trying to understand how
would a controller know whether the flow was successfully added or not.

c) While a given rule construct operation is in progress asynchronously,
would the ofproto issue new rule construct operations. How many such new
rule construct operations can ofproto issue before it expects an
acknowledgement on a pending operation.



Thanks for your help.
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to