Paul Durrant wrote:
> On 28/09/2007, Yunsong (Roamer) Lu <roamer at sun.com> wrote:
>> We've posted a new design document, Crossbow Hardware Resources
>> Management and Virtualization, here:
>> http://dlc.sun.com/osol/netvirt/downloads/docs/virtual_resources.pdf
>> you're welcome to review and comment.
>>
> 
> WRT to load balancing/traffic steering: Microsoft have very specific
> requirements for supporting load balancing NICs under Windows (using
> Toeplitz hash and a re-programmable table) and you can bet that most
> NICs will be supported under Windows! Hence, perhaps you should look
> at the way Windows handles load balancing when deciding how you may
> want to do it for GLDv3.
Thank you very much for the suggestion!

We investigated some hardwares and found that the current receive load 
balance implementations, also known as traffic steering or receive side 
scaling, are very different. Not only different hash algorithms have 
been adopted by IHVs, but also various hardware classification scenarios 
are implemented. Even though Microsoft suggested Toeplitz hash based RSS.
Alternatively, we prefer to leave the flexibility to hardware/drivers by 
defining a high level load balance interface, even the driver may decide 
not to expose the interface changing load balance policy.

Ideally, the driver and hardware may implement these classification 
features:
   * Initially, when a group of rx rings are enabled, a default load 
balance policy(we prefer 5-tuple) should be enabled. It doesn't matter 
which type of hash is used and whether the load is evenly balanced. The 
framework also doesn't care the hash output. As soon as the traffics are 
steered to multiple channels, we assume the performance is acceptable. Then
   * If capable, the framework may decide to change the load balance 
policy, like from socket-pair based classification to IP protocol based 
classification, according to the traffic type. This is an optional 
nice-to-have interface. Then
   * A specific classification rule can be added with higher priority, 
so that a dedicated hardware channel can be used exclusively for this 
type of flow. For example, you want to steer all UDP/IPv4 packets to a 
ring for some reason. The load balance should still happen among all 
rest rings.

Any comments?

Thanks,

Roamer
-- 

# telnet (650)-786-6759 (x86759)
Connected to Solaris.Sun.COM.
login: Lu, Yunsong
Last login: January 2, 2007 from beyond.sfbay
Yunsong.Lu at Sun.COM    v1.03    Since Mon Dec. 22, 2003
[Roamer at Solaris Networking]# cd ..

Reply via email to