<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ip_encap.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>7b71f57f4e514a2ab7308ce4147e14d90e099ad0 - netinet: Remove left-over sys/cdefs.h</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#7b71f57f4e514a2ab7308ce4147e14d90e099ad0</link>
        <description>netinet: Remove left-over sys/cdefs.hThese were for $FreeBSD$ that was removed a while ago, but theseincludes didn&apos;t get swept up in that. Remove them all now.Sponsored by:		NetflixMFC After:		2 weeks

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Wed, 03 Dec 2025 06:02:10 +0100</pubDate>
        <dc:creator>Warner Losh &lt;imp@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>685dc743dc3b5645e34836464128e1c0558b404b - sys: Remove $FreeBSD$: one-line .c pattern</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#685dc743dc3b5645e34836464128e1c0558b404b</link>
        <description>sys: Remove $FreeBSD$: one-line .c patternRemove /^[\s*]*__FBSDID\(&quot;\$FreeBSD\$&quot;\);?\s*\n/

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Wed, 16 Aug 2023 19:54:36 +0200</pubDate>
        <dc:creator>Warner Losh &lt;imp@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>8b3bc70a2b2d3889f9163e5e5a24747cea6417e6 - Merge ^/head r352764 through r353315.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#8b3bc70a2b2d3889f9163e5e5a24747cea6417e6</link>
        <description>Merge ^/head r352764 through r353315.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 08 Oct 2019 20:17:02 +0200</pubDate>
        <dc:creator>Dimitry Andric &lt;dim@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b8a6e03fac922677455d8e0977831506cf8212e8 - Widen NET_EPOCH coverage.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#b8a6e03fac922677455d8e0977831506cf8212e8</link>
        <description>Widen NET_EPOCH coverage.When epoch(9) was introduced to network stack, it was basicallydropped in place of existing locking, which was mutexes andrwlocks. For the sake of performance mutex covered areas wereas small as possible, so became epoch covered areas.However, epoch doesn&apos;t introduce any contention, it just delaysmemory reclaim. So, there is no point to minimise epoch coveredareas in sense of performance. Meanwhile entering/exiting epochalso has non-zero CPU usage, so doing this less often is a win.Not the least is also code maintainability. In the new paradigmwe can assume that at any stage of processing a packet, we areinside network epoch. This makes coding both input and outputpath way easier.On output path we already enter epoch quite early - in theip_output(), in the ip6_output().This patch does the same for the input path. All ISR processing,network related callouts, other ways of packet injection to thenetwork stack shall be performed in net_epoch. Any leaf functionthat walks network configuration now asserts epoch.Tricky part is configuration code paths - ioctls, sysctls. Theyalso call into leaf functions, so some need to be changed.This patch would introduce more epoch recursions (see EPOCH_TRACE)than we had before. They will be cleaned up separately, as severalof them aren&apos;t trivial. Note, that unlike a lock recursion theepoch recursion is safe and just wastes a bit of resources.Reviewed by:	gallatin, hselasky, cy, adrian, kristofDifferential Revision:	https://reviews.freebsd.org/D19111

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 08 Oct 2019 00:40:05 +0200</pubDate>
        <dc:creator>Gleb Smirnoff &lt;glebius@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>c6879c6c14eedbd060ba588a3129a6c60ebbe783 - Merge ^/head r339015 through r339669.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#c6879c6c14eedbd060ba588a3129a6c60ebbe783</link>
        <description>Merge ^/head r339015 through r339669.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 23 Oct 2018 23:09:37 +0200</pubDate>
        <dc:creator>Dimitry Andric &lt;dim@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>f252e3f2f2237f89015fcf68397ebfd66f14c63d - Include &lt;sys/eventhandler.h&gt; to fix the build.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#f252e3f2f2237f89015fcf68397ebfd66f14c63d</link>
        <description>Include &lt;sys/eventhandler.h&gt; to fix the build.MFC after:	1 month

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Sun, 21 Oct 2018 20:39:34 +0200</pubDate>
        <dc:creator>Andrey V. Elsukov &lt;ae@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>8251c68d5c8f068fbf8462b8809517d45f8fed86 - Add KPI that can be used by tunneling interfaces to handle IP addresses</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#8251c68d5c8f068fbf8462b8809517d45f8fed86</link>
        <description>Add KPI that can be used by tunneling interfaces to handle IP addressesappearing and disappearing on the host system.Such handling is need, because tunneling interfaces must use addresses,that are configured on the host as ingress addresses for tunnels.Otherwise the system can send spoofed packets with source address, thatbelongs to foreign host.The KPI uses ifaddr_event_ext event to implement addresses tracking.Tunneling interfaces register event handlers and then they arenotified by the kernel, when an address disappears or appears.ifaddr_event_compat() handler from if.c replaced by srcaddr_change_event()in the ip_encap.cMFC after:	1 monthSponsored by:	Yandex LLCDifferential Revision:	https://reviews.freebsd.org/D17134

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Sun, 21 Oct 2018 19:55:26 +0200</pubDate>
        <dc:creator>Andrey V. Elsukov &lt;ae@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>6573d7580b851d794b6c3cbd5ee3d7bf0b4c0ccb - epoch(9): allow preemptible epochs to compose</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#6573d7580b851d794b6c3cbd5ee3d7bf0b4c0ccb</link>
        <description>epoch(9): allow preemptible epochs to compose- Add tracker argument to preemptible epochs- Inline epoch read path in kernel and tied modules- Change in_epoch to take an epoch as argument- Simplify tfb_tcp_do_segment to not take a ti_locked argument,  there&apos;s no longer any benefit to dropping the pcbinfo lock  and trying to do so just adds an error prone branchfest to  these functions- Remove cases of same function recursion on the epoch as  recursing is no longer free.- Remove the the TAILQ_ENTRY and epoch_section from struct  thread as the tracker field is now stack or heap allocated  as appropriate.Tested by: pho and Limelight NetworksReviewed by: kbowling at llnw dot comSponsored by: Limelight NetworksDifferential Revision: https://reviews.freebsd.org/D16066

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Wed, 04 Jul 2018 04:47:16 +0200</pubDate>
        <dc:creator>Matt Macy &lt;mmacy@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>6d8fdfa9d5e7d4871c5039b0131829f9cbefeee9 - Rework IP encapsulation handling code.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#6d8fdfa9d5e7d4871c5039b0131829f9cbefeee9</link>
        <description>Rework IP encapsulation handling code.Currently it has several disadvantages:- it uses single mutex to protect internal structures. It is used by  data- and control- path, thus there are no parallelism at all.- it uses single list to keep encap handlers for both INET and INET6  families.- struct encaptab keeps unneeded information (src, dst, masks, protosw),  that isn&apos;t used by code in the source tree.- matches are prioritized and when many tunneling interfaces are  registered, encapcheck handler of each interface is invoked for each  packet. The search takes O(n) for n interfaces. All this work is done  with exclusive lock held.What this patch includes:- the datapath is converted to be lockless using epoch(9) KPI.- struct encaptab now linked using CK_LIST.- all unused fields removed from struct encaptab. Several new fields  addedr: min_length is the minimum packet length, that encapsulation  handler expects to see; exact_match is maximum number of bits, that  can return an encapsulation handler, when it wants to consume a packet.- IPv6 and IPv4 handlers are stored in separate lists;- added new &quot;encap_lookup_t&quot; method, that will be used later. It is  targeted to speedup lookup of needed interface, when gif(4)/gre(4) have  many interfaces.- the need to use protosw structure is eliminated. The only pr_input  method was used from this structure, so I don&apos;t see the need to keep  using it.- encap_input_t method changed to avoid using mbuf tags to store softc  pointer. Now it is passed directly trough encap_input_t method.  encap_getarg() funtions is removed.- all sockaddr structures and code that uses them removed. We don&apos;t have  any code in the tree that uses them. All consumers use encap_attach_func()  method, that relies on invoking of encapcheck() to determine the needed  handler.- introduced struct encap_config, it contains parameters of encap handler  that is going to be registered by encap_attach() function.- encap handlers are stored in lists ordered by exact_match value, thus  handlers that need more bits to match will be checked first, and if  encapcheck method returns exact_match value, the search will be stopped.- all current consumers changed to use new KPI.Reviewed by:	mmacySponsored by:	Yandex LLCDifferential Revision:	https://reviews.freebsd.org/D15617

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 05 Jun 2018 22:51:01 +0200</pubDate>
        <dc:creator>Andrey V. Elsukov &lt;ae@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>12e7376216e0cb3792a5f69ef356901abba9e496 - Remove empty encap_init() function.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#12e7376216e0cb3792a5f69ef356901abba9e496</link>
        <description>Remove empty encap_init() function.MFC after:	2 weeks

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 29 May 2018 14:32:08 +0200</pubDate>
        <dc:creator>Andrey V. Elsukov &lt;ae@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>82725ba9bf1fd59746a4006a06f24d4d61d142f2 - Merge ^/head r325999 through r326131.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#82725ba9bf1fd59746a4006a06f24d4d61d142f2</link>
        <description>Merge ^/head r325999 through r326131.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Thu, 23 Nov 2017 15:28:14 +0100</pubDate>
        <dc:creator>Hans Petter Selasky &lt;hselasky@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>51369649b03ece2aed3eb61b0c8214b9aa5b2fa2 - sys: further adoption of SPDX licensing ID tags.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#51369649b03ece2aed3eb61b0c8214b9aa5b2fa2</link>
        <description>sys: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 3-Clause license.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.Special thanks to Wind River for providing access to &quot;The Duke ofHighlander&quot; tool: an older (2014) run over FreeBSD tree was useful as astarting point.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Mon, 20 Nov 2017 20:43:44 +0100</pubDate>
        <dc:creator>Pedro F. Giffuni &lt;pfg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>009e81b16465ea457c0e63fd49fe77f47cc27a5a - MFH @r294567</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#009e81b16465ea457c0e63fd49fe77f47cc27a5a</link>
        <description>MFH @r294567

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Fri, 22 Jan 2016 16:11:40 +0100</pubDate>
        <dc:creator>Bjoern A. Zeeb &lt;bz@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>e60680024afe8ec84ded577e77965e9a44595f2b - MFH</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#e60680024afe8ec84ded577e77965e9a44595f2b</link>
        <description>MFHSponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Tue, 12 Jan 2016 02:23:45 +0100</pubDate>
        <dc:creator>Glen Barber &lt;gjb@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>89d3f0ea4e8855563263f5d05289538d9ce0e3de - Merge ^/head r293430 through r293685.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#89d3f0ea4e8855563263f5d05289538d9ce0e3de</link>
        <description>Merge ^/head r293430 through r293685.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Mon, 11 Jan 2016 20:36:44 +0100</pubDate>
        <dc:creator>Dimitry Andric &lt;dim@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>ea8d14925c6a7e96949493984f558411d0fa4380 - Remove sys/eventhandler.h from net/route.h</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#ea8d14925c6a7e96949493984f558411d0fa4380</link>
        <description>Remove sys/eventhandler.h from net/route.hReviewed by:	ae

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Sat, 09 Jan 2016 10:34:39 +0100</pubDate>
        <dc:creator>Alexander V. Chernikov &lt;melifaro@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>416ba5c74546f32a993436a99516d35008e9f384 - Catch up with HEAD (r280229-r284686).</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#416ba5c74546f32a993436a99516d35008e9f384</link>
        <description>Catch up with HEAD (r280229-r284686).

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Mon, 22 Jun 2015 02:05:22 +0200</pubDate>
        <dc:creator>Navdeep Parhar &lt;np@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>76aeda8ad4e2c1ae78bf1388a5d6e793d84d8c53 - Merge ^/head r284188 through r284643.</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#76aeda8ad4e2c1ae78bf1388a5d6e793d84d8c53</link>
        <description>Merge ^/head r284188 through r284643.

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Sat, 20 Jun 2015 21:34:50 +0200</pubDate>
        <dc:creator>Dimitry Andric &lt;dim@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>2fbd60ec4724bc5eebc0870e28620e75ae447922 - Merge from head @274131</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#2fbd60ec4724bc5eebc0870e28620e75ae447922</link>
        <description>Merge from head @274131

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Sat, 20 Jun 2015 02:58:46 +0200</pubDate>
        <dc:creator>Baptiste Daroussin &lt;bapt@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>efb5228ce87158dda1e50d20c9179ac7fb6d9f48 - Fix possible use after free in encap[46]_input().</title>
        <link>http://kernelsources.org:8080/source/history/freebsd/sys/netinet/ip_encap.c#efb5228ce87158dda1e50d20c9179ac7fb6d9f48</link>
        <description>Fix possible use after free in encap[46]_input().There is small window, when encap_detach() can free matched entrydirectly after we release encapmtx. Instead of use pointer to thematched entry, save pointers to needed variables from this entryand use them after release mutex.Pass argument stored in the encaptab entry to encap_fillarg(), insteadof pointer to matched entry. Also do not allocate new mbuf tag, whenargument that we plan to save in this tag is NULL.Also make encaptab variable static.Obtained from:	Yandex LLCSponsored by:	Yandex LLC

            List of files:
            /freebsd/sys/netinet/ip_encap.c</description>
        <pubDate>Thu, 18 Jun 2015 20:28:38 +0200</pubDate>
        <dc:creator>Andrey V. Elsukov &lt;ae@FreeBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
