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