<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/netinet/ip_input.c, branch releng/11.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F11.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F11.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2016-06-21T13:48:49Z</updated>
<entry>
<title>Get closer to a VIMAGE network stack teardown from top to bottom rather</title>
<updated>2016-06-21T13:48:49Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2016-06-21T13:48:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=89856f7e2d63bcaaacf105f679ade0bf5d40e821'/>
<id>urn:sha1:89856f7e2d63bcaaacf105f679ade0bf5d40e821</id>
<content type='text'>
than removing the network interfaces first. This change is rather larger
and convoluted as the ordering requirements cannot be separated.

Move the pfil(9) framework to SI_SUB_PROTO_PFIL, move Firewalls and
related modules to their own SI_SUB_PROTO_FIREWALL.
Move initialization of "physical" interfaces to SI_SUB_DRIVERS,
move virtual (cloned) interfaces to SI_SUB_PSEUDO.
Move Multicast to SI_SUB_PROTO_MC.

Re-work parts of multicast initialisation and teardown, not taking the
huge amount of memory into account if used as a module yet.

For interface teardown we try to do as many of them as we can on
SI_SUB_INIT_IF, but for some this makes no sense, e.g., when tunnelling
over a higher layer protocol such as IP. In that case the interface
has to go along (or before) the higher layer protocol is shutdown.

Kernel hhooks need to go last on teardown as they may be used at various
higher layers and we cannot remove them before we cleaned up the higher
layers.

For interface teardown there are multiple paths:
(a) a cloned interface is destroyed (inside a VIMAGE or in the base system),
(b) any interface is moved from a virtual network stack to a different
network stack ("vmove"), or (c) a virtual network stack is being shut down.
All code paths go through if_detach_internal() where we, depending on the
vmove flag or the vnet state, make a decision on how much to shut down;
in case we are destroying a VNET the individual protocol layers will
cleanup their own parts thus we cannot do so again for each interface as
we end up with, e.g., double-frees, destroying locks twice or acquiring
already destroyed locks.
When calling into protocol cleanups we equally have to tell them
whether they need to detach upper layer protocols ("ulp") or not
(e.g., in6_ifdetach()).

Provide or enahnce helper functions to do proper cleanup at a protocol
rather than at an interface level.

Approved by:		re (hrs)
Obtained from:		projects/vnet
Reviewed by:		gnn, jhb
Sponsored by:		The FreeBSD Foundation
MFC after:		2 weeks
Differential Revision:	https://reviews.freebsd.org/D6747
</content>
</entry>
<entry>
<title>Cleanup unneded include "opt_ipfw.h".</title>
<updated>2016-06-09T05:48:34Z</updated>
<author>
<name>Andrey V. Elsukov</name>
<email>ae@FreeBSD.org</email>
</author>
<published>2016-06-09T05:48:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4c1054027451b2e0cf9b3c4f390763cba5fdf383'/>
<id>urn:sha1:4c1054027451b2e0cf9b3c4f390763cba5fdf383</id>
<content type='text'>
It was used for conditional build IPFIREWALL_FORWARD support.
But IPFIREWALL_FORWARD option was removed a long time ago.
</content>
</entry>
<entry>
<title>Introduce a per-VNET flag to enable/disable netisr prcessing on that VNET.</title>
<updated>2016-06-03T13:57:10Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2016-06-03T13:57:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=484149def80975bda4e583a1d77c4c6ee2baf074'/>
<id>urn:sha1:484149def80975bda4e583a1d77c4c6ee2baf074</id>
<content type='text'>
Add accessor functions to toggle the state per VNET.
The base system (vnet0) will always enable itself with the normal
registration. We will share the registered protocol handlers in all
VNETs minimising duplication and management.
Upon disabling netisr processing for a VNET drain the netisr queue from
packets for that VNET.

Update netisr consumers to (de)register on a per-VNET start/teardown using
VNET_SYS(UN)INIT functionality.

The change should be transparent for non-VIMAGE kernels.

Reviewed by:	gnn (, hiren)
Obtained from:	projects/vnet
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D6691
</content>
</entry>
<entry>
<title>The pr_destroy field does not allow us to run the teardown code in a</title>
<updated>2016-06-01T10:14:04Z</updated>
<author>
<name>Bjoern A. Zeeb</name>
<email>bz@FreeBSD.org</email>
</author>
<published>2016-06-01T10:14:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3f58662dd929456a0949339d6d4a414f6eacc5b8'/>
<id>urn:sha1:3f58662dd929456a0949339d6d4a414f6eacc5b8</id>
<content type='text'>
specific order.  VNET_SYSUNINITs however are doing exactly that.
Thus remove the VIMAGE conditional field from the domain(9) protosw
structure and replace it with VNET_SYSUNINITs.
This also allows us to change some order and to make the teardown functions
file local static.
Also convert divert(4) as it uses the same mechanism ip(4) and ip6(4) use
internally.

Slightly reshuffle the SI_SUB_* fields in kernel.h and add a new ones, e.g.,
for pfil consumers (firewalls), partially for this commit and for others
to come.

Reviewed by:		gnn, tuexen (sctp), jhb (kernel.h)
Obtained from:		projects/vnet
MFC after:		2 weeks
X-MFC:			do not remove pr_destroy
Sponsored by:		The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D6652
</content>
</entry>
<entry>
<title>Do not overwrite the dchg variable.</title>
<updated>2016-04-14T18:57:30Z</updated>
<author>
<name>Luiz Otavio O Souza</name>
<email>loos@FreeBSD.org</email>
</author>
<published>2016-04-14T18:57:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=de89d74b70d1d169871785d89df32a2459edcee9'/>
<id>urn:sha1:de89d74b70d1d169871785d89df32a2459edcee9</id>
<content type='text'>
It does not cause any real issues because the variable is overwritten
only when the packet is forwarded (and the variable is not used anymore).

Obtained from:	pfSense
MFC after:	2 weeks
Sponsored by:	Rubicon Communications (Netgate)
</content>
</entry>
<entry>
<title>Make in_arpinput(), inp_lookup_mcast_ifp(), icmp_reflect(),</title>
<updated>2015-12-09T11:14:27Z</updated>
<author>
<name>Alexander V. Chernikov</name>
<email>melifaro@FreeBSD.org</email>
</author>
<published>2015-12-09T11:14:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9977be4a64ac795fda658d9806415f2a02b11cbb'/>
<id>urn:sha1:9977be4a64ac795fda658d9806415f2a02b11cbb</id>
<content type='text'>
  ip_dooptions(), icmp6_redirect_input(), in6_lltable_rtcheck(),
  in6p_lookup_mcast_ifp() and in6_selecthlim() use new routing api.

Eliminate now-unused ip_rtaddr().
Fix lookup key fib6_lookup_nh_basic() which was lost diring merge.
Make fib6_lookup_nh_basic() and fib6_lookup_nh_extended() always
  return IPv6 destination address with embedded scope. Currently
  rw_gateway has it scope embedded, do the same for non-gatewayed
  destinations.

Sponsored by:	Yandex LLC
</content>
</entry>
<entry>
<title>Overhaul if_enc(4) and make it loadable in run-time.</title>
<updated>2015-11-25T07:31:59Z</updated>
<author>
<name>Andrey V. Elsukov</name>
<email>ae@FreeBSD.org</email>
</author>
<published>2015-11-25T07:31:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ef91a9765de04e47ad6812d9be6e76fc955ffd87'/>
<id>urn:sha1:ef91a9765de04e47ad6812d9be6e76fc955ffd87</id>
<content type='text'>
Use hhook(9) framework to achieve ability of loading and unloading
if_enc(4) kernel module. INET and INET6 code on initialization registers
two helper hooks points in the kernel. if_enc(4) module uses these helper
hook points and registers its hooks. IPSEC code uses these hhook points
to call helper hooks implemented in if_enc(4).
</content>
</entry>
<entry>
<title>Replace the fastforward path with tryforward which does not require a</title>
<updated>2015-11-05T07:26:32Z</updated>
<author>
<name>George V. Neville-Neil</name>
<email>gnn@FreeBSD.org</email>
</author>
<published>2015-11-05T07:26:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=33872124a5cf92662deaf1ad6582ad29520dd897'/>
<id>urn:sha1:33872124a5cf92662deaf1ad6582ad29520dd897</id>
<content type='text'>
sysctl and will always be on. The former split between default and
fast forwarding is removed by this commit while preserving the ability
to use all network stack features.

Differential Revision:	https://reviews.freebsd.org/D4042
Reviewed by:	ae, melifaro, olivier, rwatson
MFC after:	1 month
Sponsored by:	Rubicon Communications (Netgate)
</content>
</entry>
<entry>
<title>Replace rss_m2cpuid with rss_soft_m2cpuid_v4 for ip_direct_nh.nh_m2cpuid,</title>
<updated>2015-09-06T20:20:48Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2015-09-06T20:20:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=499baf0aa7c19dc352e09bf9290f285213e951bd'/>
<id>urn:sha1:499baf0aa7c19dc352e09bf9290f285213e951bd</id>
<content type='text'>
because the RSS hash may need to be recalculated.

Submitted by:	Tiwei Bie &lt;btw@mail.ustc.edu.cn&gt;
Differential Revision:	https://reviews.freebsd.org/D3564
</content>
</entry>
<entry>
<title>Rename rss_soft_m2cpuid() -&gt;  rss_soft_m2cpuid_v4() in preparation for</title>
<updated>2015-08-29T06:58:30Z</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2015-08-29T06:58:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2527ccad2d2e7eb0f56040ac8d6fd10d1fbd62c4'/>
<id>urn:sha1:2527ccad2d2e7eb0f56040ac8d6fd10d1fbd62c4</id>
<content type='text'>
an IPv6 version to show up.

Submitted by:	Tiwei Bie &lt;btw@mail.ustc.edu.cn&gt;
Differential Revision:	https://reviews.freebsd.org/D3504
</content>
</entry>
</feed>
