3. Lớp Simlator
4.4.4 Bộ phân lớp băm
kê), các gói được gán vào luồng dựa trên ID của luồng, địa chỉ đích, địa chỉ nguồn/đích hoặc tổ hợp của địa chỉ nguồn/đích cộng với ID của luồng. Những trường được truy nhập bởi bộ phân lớp băm được giới hạn ở ip header: src(),dst(), flowid() (trong ip.h).
Bộ phân lớp băm được tạo ra với đối số nguyên chỉ định kích thước khởi tạo của bảng băm. Kích cỡ bảng băm hiện tại có thể được sửa chữa sau đó với phương thức resize (xem bên dưới). Khi tạo ra, biến shift_ và mask_ được khởi tạo với các giá trị của NodeShift và NodeMask hiện tại của bộ mô phỏng. Các giá trị này được lấy từ đối tượng AddrParams khi bộ phân lớp băm được gọi đến, bộ phân lớp băm sẽ không hoạt động nếu cấu trúc AddrParams không được khởi tạo, các bộ dựng dưới đây được sử dụng cho nhiều bộ phân lớp băm
Classifier/Hash/SrcDest Classifier/Hash/Dest
Classifier/Hash/Fid
Classifier/Hash/SrcDestFid
Bộ phân lớp băm nhận các gói tin, phân loại chúng theo điều kiện về luồng của chúng, và gọi ra bộ phân lớp slot chỉ thị nút tiếp theo sẽ nhận gọi tin. Trong vài trường hợp với bộ phân lớp băm, hầu hết gói tin được kết hợp với một khe đơn, trong khi chỉ vài luồng được hướng tới vài nơi khác. bộ phân lớp băm gồm có biến default_ chỉ thị khe nào sẽ được sử dụng cho các gói tin không phù hợp với mọi điều kiện trên một luồng. giá trị default_ có thể được thiết lập một cách tùy chọn. Phương thức cho bộ phân lớp băm như sau:
$hashcl set-hash buck src dst fid slot $hashcl lookup buck src dst fid
$hashcl del-hash src dst fid
$hashcl resize nbuck
Phương thức set-hash()chèn thêm một mục từ mới vào bảng băm với bộ phân lớp băm. Đối số buck chỉ rõ số thùng bảng băm được sử dụng cho việc chen thêm mục từ này. Khi số thùng là không rõ ràng, buck có thể được chỉ ra là auto, Đối số src, dst và fid chỉ rõ nguồn IP, đích, và ID của luồng trở thành phù hợp cho sự phân loại luồng. Các trường không được sử dụng bởi bộ phân lớp riêng biệt là được bỏ qua, đối số slot chỉ thị chỉ mục trong bảng khe ưu tiên trong đối tượng Classifier gốc từ đó bộ phân lớp băm được dẫn xuất ra. Chức năng lookup trả về tên của đối tượng được kết hợp với buck/src/dst/fid, đối số buck có thể auto, như là cho set-hash. hàm del-hash xóa mục từ theo danh nghĩa từ bảng băm. Hiện tại việc này được thực hiện chỉ là đánh dấu mục từ như là không hoạt động, tuy nhiên nó vẫn ở trong bảng băm với các mục từ không dùng đến.
Chức năng resize giảm kích thước bảng băm bao gồm số các thùng được chỉ rõ bởi đối số nbuck.