[NetBSD logo]    &    [Google logo]

NetBSD-SoC: Create an in-kernel API for packet classes

Student: Anish Babu
Mentor : Herb Peyerl

Goal of the project :

    To create an in-kernel API for “Packet Classes” and for labeling packets with their classes for special treatment by traffic shapers and Network Interface drivers.
    This API acts as a interface between software implementation of traffic categorizers like PF, IPFilter etc. and both the software and hardware implementation of traffic shapers like ALTQ,ath,rtw,Ethernet etc. In an ideal case, this API makes both traffic categorizer and traffic shaper fully interchangeable.
    Make PF use the packet-classes API to convert PF tag names—see pf.conf(5) for more about tags—to packet-class tokens, and to label mbufs with the tokens as they exit PF.
    Make ALTQ extract the packet-class tokens from mbufs and use them to select the packet-scheduling class.

Approach :

    A packet categorizer is a software program that categorizes or tags a packet being received or transmitted by kernel. For example, PF uses pf.conf(5) file for reading in rules and adds tags to packets based on those rulesets.
    ALTQ is a software traffic shaper which is integrated with PF. It allows PF to implement class based Queuing (CBQ) because it can read PF tags. But device driver queues have no idea of what each packet is because they don’t understand PF tags.
    Now, Packet class API plays. This API provides an interface to device drivers which register the classes that this driver can handle. During the registration part of the driver, a token is generated and this token is used by the traffic categorizer to add to m_bufs. As driver can understand this token now, it uses this tagged m_buf() in scheduling of the packet.



Mandatory components:

Optional (would-be-nice) components:


Will be added soon

Technical Details

  • pf.conf(5)
  • pf.conf(4)
  • pfctl(8)

  • ALTQ
  • altqd(8)
  • altq(9)
  • altq.conf(5)

  • tbrconfig(8)

  • Personal page

    Anish contact: http://anishbabu.wordpress.com/netbsd/

    SourceForge.net Logo