• Disabling RSSon the fly is not allowed, and the 82599 must be reset after RSS is disabled.
• When RSS is disabled, packets are assigned an RSS output index = zero.
When multiple request queues are enabled in RSS mode, un-decodable packets are assigned an RSS
Receive Side Scaling
output index = zero. The 32-bit tag (normally a result of the hash function) equals zero.
Parsed receive packet
Redirection Table
RSS hash
128 x 4
7 LS 7
bits
32 0
4
RSS Disable or (RSS
Packet Descriptor
& not decodable)
4
RSS output index
Figure 7.10. RSS Block Diagram
src-ip, src-port, dst-ip, dst-portからハッシュ値
を作成、Redirection Tableを参照してキュー
• Disabling RSSon the fly is not allowed, and the 82599 must be reset after RSS is disabled.
• When RSS is disabled, packets are assigned an RSS output index = zero.
When multiple request queues are enabled in RSS mode, un-decodable packets are assigned an RSS
Receive Side Scalingの制限
output index = zero. The 32-bit tag (normally a result of the hash function) equals zero.
Parsed receive packet
128フローしか
Redirection Table
識別出来ない
RSS hash
128 x 4
7 LS 7
bits
32 0
4
RSS Disable or (RSS
Packet Descriptor
& not decodable)
32bitのハッシュ値のうち
4bitしか使ってない 4
RSS output index
Figure 7.10. RSS Block Diagram
フローが多いとハッシュ衝突する為、特定フローを
特定CPUへキューするのには向いていない
ets by ahash function on the relevant tuples as defined by the FDIR...M registers. Each bucke
nized in a linked list indicated by the hash lookup table. Buckets can have a variable length wh
st filter in each bucket is indicated as a last. There is no upper limit for a linked list length du
Flow Director
amming; however, a received packet that matches a filter that exceeds the FDIRCTRL.Max-Len
eported to software (see Section 7.1.2.7.5).
Logic AND of Rx Packet tuples with
the Flexible filters Mask registers Flow ID Fields in “Perfect Match mode”
~350 Hash (Signature)
Flow ID Field in “Signature mode”
15 bit output
Hash
15 bit output
Hash-Index = 0 Hash-Index = 1 Hash-Index = N Hash-Index = N+1
15 bit address Flow ID fields Flow ID fields Flow ID fields Flow ID fields
Filter Action Filter Action ... Filter Action Filter Action ...
Addr
0 Bucket Valid First Filter PTR Collision flag Collision flag Collision flag Collision flag
Next Filter PTR Next Filter PTR Next Filter PTR Next Filter PTR
1 Bucket Valid First Filter PTR
2 Bucket Valid First Filter PTR
Bucket 0 (linked list 0)
... ... ‘too long’
M Bucket Valid First Filter PTR Hash-Index = 0 Hash-Index = 1 Linked list
... ... Flow ID fields Flow ID fields
32K Bucket Valid First Filter PTR Filter Action Filter Action
Collision flag Collision flag Max recommended linked list length
Next Filter PTR Next Filter PTR (FDIRCTRL.Max-Length)
Hash Lookup Table Bucket M (linked list M)
Shares the Rx
packet buffer memory space Flexible Filters table - Shares the Rx packet buffer memory space
13.
Linuxでの利用例#1(自動)
Flow
Director Txq
Filters
NIC
フィルタ
送信処理
更新
ドライバ
プロトコル
スタック
ソケット
システムコール
proce
ss
プロセスコンテキストからのパケット送出時に送信
元CPUとパケットヘッダを用いてフィルタを更新