Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Nov 2014 20:02:32 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        FreeBSD Current <freebsd-current@freebsd.org>, np@freebsd.org,  Lawrence Stewart <lstewart@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>, Adrian Chadd <adrian@freebsd.org>
Subject:   [RFC] Removal of M_FLOWID flag from m_flags [WAS: Add support for hardware transmit rate limiting queues]
Message-ID:  <546CE948.2070105@selasky.org>

next in thread | raw e-mail | index | archive | help
Hi,

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.

Background:
===========

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:
=============================
http://home.selasky.org:8192/m_flowid_removal.diff


Comments are appreciated!


--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?546CE948.2070105>