Scheduling with fairness.  
As we target a multi-tenant environment, sNIC needs to fairly allocate its resources to different applications (G3).
Different from existing fairness solutions, we treat every NT as a separate type of resource, in addition to ingress bandwidth, egress bandwidth, packet store, and on-board memory space.
This is because we support the time sharing of an NT, and different NTs can be shared by different sets of users. Our fairness policy follows Dominant Resource Fairness (DRF) [1]}, where we identify the dominant resource type for each application and seek a fair share for each application's dominant type. We also support weighted DRF [1]}, [3]} for users with different priorities.
