The M_FLOWID flag is marked as deprecated in the FreeBSD kernel code and the patch below completely removes it. I suggest we will now be using the "m_pkthdr.rsstype" also known as "M_HASHTYPE" to decide if the flowid value is valid or not. When the "rsstype" is set to "M_HASHTYPE_NONE" the "m_pkthdr.flowid" field is not valid. Else this field contains valid data for both TX and RX direction.


The network drivers today use the "rsstype" field only when receiving traffic. After my patch it is also used when sending traffic, and probably we should rename it.

The reason for using the rsstype field for transmit, is to avoid introducing another field in the MBUF's packet header in order to steer outgoing traffic into special multiple purpose hardware FIFOs. This new feature should coexist with the existing flowid mechanism, and this is achieved by introducing a new hash type which I've named "M_HASHTYPE_HWRING" in my patch. This type can be selected by upper layers when generating traffic for lower layers, to indicate that the traffic is of a special kind and should have special treatment by the hardware, like rate-limiting. Hardware which doesn't support M_HASHTYPE_HWRING will send out the packets like usual.

Patch is available from here:

Comments are appreciated!

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to