<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/modules/if_vlan, branch stable/13</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=stable%2F13</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=stable%2F13'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2023-08-23T17:43:27Z</updated>
<entry>
<title>sys: Remove $FreeBSD$: one-line sh pattern</title>
<updated>2023-08-23T17:43:27Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-22T01:31:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5510f79042fbd543de55807d0da7f8a2b8be2f89'/>
<id>urn:sha1:5510f79042fbd543de55807d0da7f8a2b8be2f89</id>
<content type='text'>
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/

Similar commit in current:
(cherry picked from commit 031beb4e239b)
</content>
</entry>
<entry>
<title>modules: adding some missing opt_* dependencies</title>
<updated>2020-01-29T22:43:56Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2020-01-29T22:43:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=78373a5faa3bab46d247c10a7059e484bc634504'/>
<id>urn:sha1:78373a5faa3bab46d247c10a7059e484bc634504</id>
<content type='text'>
if_vlan grew a dependency on opt_inet6.h in r356993
if_lagg and if_vlan both grew a dependency on opt_kern_tls.h in r351522

This is needed for standalone module builds of these guys.
</content>
</entry>
<entry>
<title>sys/modules: normalize .CURDIR-relative paths to SRCTOP</title>
<updated>2017-03-04T10:10:17Z</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2017-03-04T10:10:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=193d9e768ba63fcfb187cfd17f461f7d41345048'/>
<id>urn:sha1:193d9e768ba63fcfb187cfd17f461f7d41345048</id>
<content type='text'>
This simplifies make output/logic

Tested with:	`cd sys/modules; make ALL_MODULES=` on amd64
MFC after:	1 month
Sponsored by:	Dell EMC Isilon
</content>
</entry>
<entry>
<title>Implement kernel support for hardware rate limited sockets.</title>
<updated>2017-01-18T13:31:17Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-01-18T13:31:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f3e7afe2d7b262ab55ab818445d4dfdb6e0c70a9'/>
<id>urn:sha1:f3e7afe2d7b262ab55ab818445d4dfdb6e0c70a9</id>
<content type='text'>
- Add RATELIMIT kernel configuration keyword which must be set to
enable the new functionality.

- Add support for hardware driven, Receive Side Scaling, RSS aware, rate
limited sendqueues and expose the functionality through the already
established SO_MAX_PACING_RATE setsockopt(). The API support rates in
the range from 1 to 4Gbytes/s which are suitable for regular TCP and
UDP streams. The setsockopt(2) manual page has been updated.

- Add rate limit function callback API to "struct ifnet" which supports
the following operations: if_snd_tag_alloc(), if_snd_tag_modify(),
if_snd_tag_query() and if_snd_tag_free().

- Add support to ifconfig to view, set and clear the IFCAP_TXRTLMT
flag, which tells if a network driver supports rate limiting or not.

- This patch also adds support for rate limiting through VLAN and LAGG
intermediate network devices.

- How rate limiting works:

1) The userspace application calls setsockopt() after accepting or
making a new connection to set the rate which is then stored in the
socket structure in the kernel. Later on when packets are transmitted
a check is made in the transmit path for rate changes. A rate change
implies a non-blocking ifp-&gt;if_snd_tag_alloc() call will be made to the
destination network interface, which then sets up a custom sendqueue
with the given rate limitation parameter. A "struct m_snd_tag" pointer is
returned which serves as a "snd_tag" hint in the m_pkthdr for the
subsequently transmitted mbufs.

2) When the network driver sees the "m-&gt;m_pkthdr.snd_tag" different
from NULL, it will move the packets into a designated rate limited sendqueue
given by the snd_tag pointer. It is up to the individual drivers how the rate
limited traffic will be rate limited.

3) Route changes are detected by the NIC drivers in the ifp-&gt;if_transmit()
routine when the ifnet pointer in the incoming snd_tag mismatches the
one of the network interface. The network adapter frees the mbuf and
returns EAGAIN which causes the ip_output() to release and clear the send
tag. Upon next ip_output() a new "snd_tag" will be tried allocated.

4) When the PCB is detached the custom sendqueue will be released by a
non-blocking ifp-&gt;if_snd_tag_free() call to the currently bound network
interface.

Reviewed by:		wblock (manpages), adrian, gallatin, scottl (network)
Differential Revision:	https://reviews.freebsd.org/D3687
Sponsored by:		Mellanox Technologies
MFC after:		3 months
</content>
</entry>
<entry>
<title>After r193232 rt_tables in vnet.h are no longer indirectly dependent on</title>
<updated>2009-06-08T19:57:35Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2009-06-08T19:57:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8d8bc0182ea6f8f85409e76e53053487c7d23a84'/>
<id>urn:sha1:8d8bc0182ea6f8f85409e76e53053487c7d23a84</id>
<content type='text'>
the ROUTETABLES kernel option thus there is no need to include opt_route.h
anymore in all consumers of vnet.h and no longer depend on it for module
builds.

Remove the hidden include in flowtable.h as well and leave the two
explicit #includes in ip_input.c and ip_output.c.
</content>
</entry>
<entry>
<title>Rather than using hidden includes (with cicular dependencies),</title>
<updated>2008-12-02T21:37:28Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2008-12-02T21:37:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4b79449e2fb67cb37c4c9f46d31791893a39ddd8'/>
<id>urn:sha1:4b79449e2fb67cb37c4c9f46d31791893a39ddd8</id>
<content type='text'>
directly include only the header files needed. This reduces the
unneeded spamming of various headers into lots of files.

For now, this leaves us with very few modules including vnet.h
and thus needing to depend on opt_route.h.

Reviewed by:	brooks, gnn, des, zec, imp
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>if_vlan no more depends on INET.</title>
<updated>2007-03-19T17:34:31Z</updated>
<author>
<name>Yaroslav Tykhiy</name>
<email>ytykhiy@gmail.com</email>
</author>
<published>2007-03-19T17:34:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8071ab55dc44a249d85e395c49082498a856288e'/>
<id>urn:sha1:8071ab55dc44a249d85e395c49082498a856288e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix standalone module build.</title>
<updated>2006-02-17T10:52:59Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2006-02-17T10:52:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=525312f7c0cc1196bba186e46db7ad52838171f2'/>
<id>urn:sha1:525312f7c0cc1196bba186e46db7ad52838171f2</id>
<content type='text'>
Reported by:	Boris Samorodov
</content>
</entry>
<entry>
<title>Let modules use the kernel's opt_*.h files if built along with</title>
<updated>2005-10-14T23:30:17Z</updated>
<author>
<name>Yaroslav Tykhiy</name>
<email>ytykhiy@gmail.com</email>
</author>
<published>2005-10-14T23:30:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=822923447e454b30d310cb46903c9ddeca9f0a7a'/>
<id>urn:sha1:822923447e454b30d310cb46903c9ddeca9f0a7a</id>
<content type='text'>
the kernel by wrapping all targets for fake opt_*.h files in
.if defined(KERNBUILDDIR).  Thus, such fake files won't be
created at all if modules are built with the kernel.

Some modules undergo cleanup like removing unused or unneeded
options or .h files, without which they wouldn't build this way
or the other.

Reviewed by:	ru
Tested by:	no binary changes in modules built alone
Tested on:	i386 sparc64 amd64
</content>
</entry>
<entry>
<title>Drop &lt;bsd.man.mk&gt; support from &lt;bsd.kmod.mk&gt;.</title>
<updated>2002-01-11T15:49:02Z</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@FreeBSD.org</email>
</author>
<published>2002-01-11T15:49:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=17d6c636720d00f77e5d098daf4c278f89d84f7b'/>
<id>urn:sha1:17d6c636720d00f77e5d098daf4c278f89d84f7b</id>
<content type='text'>
Not objected to by:	-current
</content>
</entry>
</feed>
