The NetBSD Project

CVS log for src/sys/netinet/in_l2tp.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / netinet

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.22: download - view: text, markup, annotated - select for diffs
Fri Sep 1 11:23:39 2023 UTC (15 months, 1 week ago) by andvar
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +3 -3 lines
fix typos in comments, mainly s/innner/inner/.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Dec 7 08:30:15 2022 UTC (2 years ago) by knakahara
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +5 -4 lines
gif(4), ipsec(4) and l2tp(4) use encap_attach_addr().

Revision 1.18.6.1: download - view: text, markup, annotated - select for diffs
Sat Apr 3 22:29:01 2021 UTC (3 years, 8 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +3 -9 lines
Sync with HEAD.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Fri Feb 19 14:51:59 2021 UTC (3 years, 9 months ago) by christos
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +3 -4 lines
- Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more
  correct because it works with non-primitive types and provides the ABI
  alignment for the type the compiler will use.
- Remove all the *_HDR_ALIGNMENT macros and asserts
- Replace POINTER_ALIGNED_P with ACCESSIBLE_POINTER which is identical to
  ALIGNED_POINTER, but returns that the pointer is always aligned if the
  CPU supports unaligned accesses.
[ as proposed in tech-kern ]

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Feb 14 20:58:35 2021 UTC (3 years, 9 months ago) by christos
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +4 -9 lines
- centralize header align and pullup into a single inline function
- use a single macro to align pointers and expose the alignment, instead
  of hard-coding 3 in 1/2 the macros.
- fix an issue in the ipv6 lt2p where it was aligning for ipv4 and pulling
  for ipv6.

Revision 1.15.2.3: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:05:16 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.15.2.2: preferred, colored; branchpoint 1.15: preferred, colored; next MAIN 1.16: preferred, colored
Changes since revision 1.15.2.2: +12 -14 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.15.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:58 2020 UTC (4 years, 8 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.15.2.1: preferred, colored; branchpoint 1.15: preferred, colored
Changes since revision 1.15.2.1: +3 -3 lines
Merge changes from current as of 20200406

Revision 1.17.2.1: download - view: text, markup, annotated - select for diffs
Sat Feb 29 20:21:07 2020 UTC (4 years, 9 months ago) by ad
Branches: ad-namecache
Diff to: previous 1.17: preferred, colored; next MAIN 1.18: preferred, colored
Changes since revision 1.17: +3 -3 lines
Sync with head.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Wed Jan 29 04:37:24 2020 UTC (4 years, 10 months ago) by thorpej
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3
Branch point for: thorpej-futex
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +3 -3 lines
Adopt <net/if_stats.h>.

Revision 1.2.8.8: download - view: text, markup, annotated - select for diffs
Tue Sep 24 18:27:10 2019 UTC (5 years, 2 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE
Diff to: previous 1.2.8.7: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.8.7: +14 -16 lines
Pull up following revision(s) (requested by knakahara in ticket #1385):

	sys/net/if.c				1.461
	sys/net/if.h				1.277
	sys/net/if_gif.c			1.149
	sys/net/if_gif.h			1.33
	sys/net/if_ipsec.c			1.19,1.20,1.24
	sys/net/if_ipsec.h			1.5
	sys/net/if_l2tp.c			1.33,1.36-1.39
	sys/net/if_l2tp.h			1.7,1.8
	sys/net/route.c				1.220,1.221
	sys/net/route.h				1.125
	sys/netinet/in_gif.c			1.95
	sys/netinet/in_l2tp.c			1.17
	sys/netinet/ip_input.c			1.391,1.392
	sys/netinet/wqinput.c			1.6
	sys/netinet6/in6_gif.c			1.94
	sys/netinet6/in6_l2tp.c			1.18
	sys/netinet6/ip6_forward.c		1.97
	sys/netinet6/ip6_input.c		1.210,1.211
	sys/netipsec/ipsec_output.c		1.82,1.83 (patched)
	sys/netipsec/ipsecif.c			1.12,1.13,1.15,1.17 (patched)
	sys/netipsec/key.c			1.259,1.260

ipsecif(4) support input drop packet counter.

ipsecif(4) should not increment drop counter by errors not related to if_snd. Pointed out by ozaki-r@n.o, thanks.
Remove unnecessary addresses in PF_KEY message.

MOBIKE Extensions for PF_KEY draft-schilcher-mobike-pfkey-extension-01.txt says
====================
5.  SPD Update
// snip
   SADB_X_SPDADD:
// snip
      sadb_x_ipsecrequest_reqid:
         An ID for that SA can be passed to the kernel in the
         sadb_x_ipsecrequest_reqid field.
      If tunnel mode is specified, the sadb_x_ipsecrequest structure is
      followed by two sockaddr structures that define the tunnel
      endpoint addresses.  In the case that transport mode is used, no
      additional addresses are specified.
====================
see: <a  rel="nofollow" href="https://tools.ietf.org/html/draft-schilcher-mobike-pfkey-extension-01">https://tools.ietf.org/html/draft-schilcher-mobike-pfkey-extension-01</a>

ipsecif(4) uses transport mode, so it should not add addresses.

ipsecif(4) supports multiple peers in the same NAPT.

E.g. ipsec0 connects between NetBSD_A and NetBSD_B, ipsec1 connects
NetBSD_A and NetBSD_C at the following figure.
                                        +----------+
                                   +----| NetBSD_B |
 +----------+           +------+   |    +----------+
 | NetBSD_A |--- ... ---| NAPT |---+
 +----------+           +------+   |    +----------+
                                   +----| NetBSD_C |
                                        +----------+

Add ATF later.

l2tp(4): fix output bytes counter. Pointed by k-goda@IIJ, thanks.
remove a variable which is no longer used.

l2tp: initialize mowner variables for MBUFTRACE

Avoid having a rtcache directly in a percpu storage
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by knakahara@ and yamaguchi@


wqinput: avoid having struct wqinput_worklist directly in a percpu storage
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Input handlers of wqinput normally involves sleepable operations so we must
avoid dereferencing a percpu data (struct wqinput_worklist) after executing
an input handler.  Address this situation by having just a pointer to the data
in a percpu storage instead.

Reviewed by knakahara@ and yamaguchi@

Add missing #include <sys/kmem.h>

Divide Tx context of l2tp(4) to improve performance.
It seems l2tp(4) call path is too long for instruction cache. So, dividing
l2tp(4) Tx context improves CPU use efficiency.

After this commit, l2tp(4) throughput gains 10% on my machine(Atom C3000).

Apply some missing changes lost on the previous commit

Avoid having a rtcache directly in a percpu storage for tunnel protocols.
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@

l2tp(4): avoid having struct ifqueue directly in a percpu storage.

percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Tx processing of l2tp(4) uses normally involves sleepable operations so we
must avoid dereferencing a percpu data (struct ifqueue) after executing Tx
processing.  Address this situation by having just a pointer to the data in
a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@

Revision 1.16.4.1: download - view: text, markup, annotated - select for diffs
Tue Sep 24 03:10:35 2019 UTC (5 years, 2 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +14 -16 lines
Pull up following revision(s) (requested by ozaki-r in ticket #238):

	sys/netipsec/ipsec_output.c: revision 1.83
	sys/net/route.h: revision 1.125
	sys/netinet6/ip6_input.c: revision 1.210
	sys/netinet6/ip6_input.c: revision 1.211
	sys/net/if.c: revision 1.461
	sys/net/if_gif.h: revision 1.33
	sys/net/route.c: revision 1.220
	sys/net/route.c: revision 1.221
	sys/net/if.h: revision 1.277
	sys/netinet6/ip6_forward.c: revision 1.97
	sys/netinet/wqinput.c: revision 1.6
	sys/net/if_ipsec.h: revision 1.5
	sys/netinet6/in6_l2tp.c: revision 1.18
	sys/netinet6/in6_gif.c: revision 1.94
	sys/net/if_l2tp.h: revision 1.7
	sys/net/if_gif.c: revision 1.149
	sys/net/if_l2tp.h: revision 1.8
	sys/netinet/in_gif.c: revision 1.95
	sys/netinet/in_l2tp.c: revision 1.17
	sys/netipsec/ipsecif.c: revision 1.17
	sys/net/if_ipsec.c: revision 1.24
	sys/net/if_l2tp.c: revision 1.37
	sys/netinet/ip_input.c: revision 1.391
	sys/net/if_l2tp.c: revision 1.38
	sys/netinet/ip_input.c: revision 1.392
	sys/net/if_l2tp.c: revision 1.39

Avoid having a rtcache directly in a percpu storage

percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.
Reviewed by knakahara@ and yamaguchi@

 -

wqinput: avoid having struct wqinput_worklist directly in a percpu storage

percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Input handlers of wqinput normally involves sleepable operations so we must
avoid dereferencing a percpu data (struct wqinput_worklist) after executing
an input handler.  Address this situation by having just a pointer to the data
in a percpu storage instead.
Reviewed by knakahara@ and yamaguchi@

 -

Add missing #include <sys/kmem.h>

 -

Divide Tx context of l2tp(4) to improve performance.

It seems l2tp(4) call path is too long for instruction cache. So, dividing
l2tp(4) Tx context improves CPU use efficiency.

After this commit, l2tp(4) throughput gains 10% on my machine(Atom C3000).

 -

Apply some missing changes lost on the previous commit

 -

Avoid having a rtcache directly in a percpu storage for tunnel protocols.
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@

 -

l2tp(4): avoid having struct ifqueue directly in a percpu storage.
percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.

A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Tx processing of l2tp(4) uses normally involves sleepable operations so we
must avoid dereferencing a percpu data (struct ifqueue) after executing Tx
processing.  Address this situation by having just a pointer to the data in
a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Sep 19 06:07:25 2019 UTC (5 years, 2 months ago) by knakahara
Branches: MAIN
CVS tags: phil-wifi-20191119, ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +14 -16 lines
Avoid having a rtcache directly in a percpu storage for tunnel protocols.

percpu(9) has a certain memory storage for each CPU and provides it by the piece
to users.  If the storages went short, percpu(9) enlarges them by allocating new
larger memory areas, replacing old ones with them and destroying the old ones.
A percpu storage referenced by a pointer gotten via percpu_getref can be
destroyed by the mechanism after a running thread sleeps even if percpu_putref
has not been called.

Using rtcache, i.e., packet processing, typically involves sleepable operations
such as rwlock so we must avoid dereferencing a rtcache that is directly stored
in a percpu storage during packet processing.  Address this situation by having
just a pointer to a rtcache in a percpu storage instead.

Reviewed by ozaki-r@ and yamaguchi@

Revision 1.15.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:09:47 2019 UTC (5 years, 6 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +25 -9 lines
Sync with HEAD

Revision 1.2.8.7: download - view: text, markup, annotated - select for diffs
Mon Sep 10 15:58:47 2018 UTC (6 years, 3 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-1-RELEASE, netbsd-8-1-RC1
Diff to: previous 1.2.8.6: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.6: +25 -9 lines
Pull up following revision(s) (requested by knakahara in ticket #1018):

	sys/netinet6/in6_l2tp.c: revision 1.17
	sys/netinet/in_l2tp.c: revision 1.16

fix: l2tp(4) cannot receive packets after reset session without reset tunnel. Pointed out by k-goda@IIJ

When the following operations are done after established session, the l2tp0
cannot receive packets until done deletetunnel && tunnel "src" "dst".

====================
ifconfig l2tp0 deletesession
ifconfig l2tp0 deletecookie
ifconfig l2tp0 session 200 100
====================

XXX pullup-8

Revision 1.12.2.3: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:56:44 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.12.2.2: preferred, colored; branchpoint 1.12: preferred, colored; next MAIN 1.13: preferred, colored
Changes since revision 1.12.2.2: +25 -9 lines
Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.16: download - view: text, markup, annotated - select for diffs
Mon Sep 3 02:33:30 2018 UTC (6 years, 3 months ago) by knakahara
Branches: MAIN
CVS tags: phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, netbsd-9-base, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +25 -9 lines
fix: l2tp(4) cannot receive packets after reset session without reset tunnel. Pointed out by k-goda@IIJ

When the following operations are done after established session, the l2tp0
cannot receive packets until done deletetunnel && tunnel "src" "dst".
====================
ifconfig l2tp0 deletesession
ifconfig l2tp0 deletecookie
ifconfig l2tp0 session 200 100
====================

XXX pullup-8

Revision 1.2.8.6: download - view: text, markup, annotated - select for diffs
Fri Jul 13 14:26:47 2018 UTC (6 years, 5 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RELEASE
Diff to: previous 1.2.8.5: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.5: +5 -2 lines
Pull up following revision(s) via patch (requested by knakahara in ticket #905):

	sys/netinet/ip_mroute.c: revision 1.160
	sys/netinet6/in6_l2tp.c: revision 1.16
	sys/net/if.h: revision 1.263
	sys/netinet/in_l2tp.c: revision 1.15
	sys/netinet/ip_icmp.c: revision 1.172
	sys/netinet/igmp.c: revision 1.68
	sys/netinet/ip_encap.c: revision 1.69
	sys/netinet6/ip6_mroute.c: revision 1.129

sbappendaddr() is required any lock. Currently, softnet_lock is appropriate.

When rip_input() is called as inetsw[].pr_input, rip_iput() is always called
with holding softnet_lock, that is, in case of !defined(NET_MPSAFE) it is
acquired in ipintr(), otherwise(defined(NET_MPSAFE)) it is acquire in
PR_WRAP_INPUT macro.

However, some function calls rip_input() directly without holding softnet_lock.
That causes assertion failure in sbappendaddr().
rip6_input() and icmp6_rip6_input() are also required softnet_lock for the same
reason.

Revision 1.12.2.2: download - view: text, markup, annotated - select for diffs
Mon Jun 25 07:26:06 2018 UTC (6 years, 5 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.12.2.1: preferred, colored; branchpoint 1.12: preferred, colored
Changes since revision 1.12.2.1: +5 -2 lines
Sync with HEAD

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Jun 21 10:37:50 2018 UTC (6 years, 5 months ago) by knakahara
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625
Branch point for: phil-wifi
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +5 -2 lines
sbappendaddr() is required any lock. Currently, softnet_lock is appropriate.

When rip_input() is called as inetsw[].pr_input, rip_iput() is always called
with holding softnet_lock, that is, in case of !defined(NET_MPSAFE) it is
acquired in ipintr(), otherwise(defined(NET_MPSAFE)) it is acquire in
PR_WRAP_INPUT macro.
However, some function calls rip_input() directly without holding softnet_lock.
That causes assertion failure in sbappendaddr().
rip6_input() and icmp6_rip6_input() are also required softnet_lock for the same
reason.

Revision 1.2.8.5: download - view: text, markup, annotated - select for diffs
Thu May 17 14:07:03 2018 UTC (6 years, 6 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RC2
Diff to: previous 1.2.8.4: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.4: +6 -6 lines
Pull up following revision(s) (requested by knakahara in ticket #829):

	sys/net/if_l2tp.c: revision 1.24
	sys/net/if_ipsec.c: revision 1.13
	sys/net/if_gif.h: revision 1.31
	sys/netipsec/ipsecif.c: revision 1.8
	sys/net/if_gif.c: revision 1.140
	sys/netinet6/in6_l2tp.c: revision 1.15
	sys/net/if_ipsec.h: revision 1.3
	sys/netinet6/in6_gif.c: revision 1.92
	sys/net/if_l2tp.h: revision 1.5
	sys/netinet/in_l2tp.c: revision 1.13
	sys/netinet/in_gif.c: revision 1.93

Fix LOCKDEBUG kernel panic when many(about 200) tunnel interfaces is created.

The tunnel interfaces are gif(4), l2tp(4), and ipsecif(4). They use mutex
itself in percpu area. When percpu_cpu_enlarge() run, the address of the
mutex in percpu area becomes different from the address which lockdebug
saved. That can cause "already initialized" false detection.

Revision 1.12.2.1: download - view: text, markup, annotated - select for diffs
Wed May 2 07:20:23 2018 UTC (6 years, 7 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +6 -8 lines
Synch with HEAD

Revision 1.14: download - view: text, markup, annotated - select for diffs
Tue May 1 07:21:39 2018 UTC (6 years, 7 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-0521, pgoyette-compat-0502
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -4 lines
Remove now unused net_osdep.h includes, the other BSDs did the same.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Fri Apr 27 09:55:28 2018 UTC (6 years, 7 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +6 -6 lines
Fix LOCKDEBUG kernel panic when many(about 200) tunnel interfaces is created.

The tunnel interfaces are gif(4), l2tp(4), and ipsecif(4). They use mutex
itself in percpu area. When percpu_cpu_enlarge() run, the address of the
mutex in percpu area becomes different from the address which lockdebug
saved. That can cause "already initialized" false detection.

Revision 1.2.8.4: download - view: text, markup, annotated - select for diffs
Thu Mar 8 13:41:41 2018 UTC (6 years, 9 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RC1
Diff to: previous 1.2.8.3: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.3: +54 -52 lines
Pull up following revision(s) (requested by knakahara in ticket #614):
	sys/net/if_l2tp.c: revision 1.20
	sys/netinet6/in6_l2tp.c: revision 1.13
	sys/netinet6/in6_l2tp.c: revision 1.14
	sys/net/if_l2tp.h: revision 1.3
	sys/net/if_l2tp.c: revision 1.13
	sys/netinet/in_l2tp.c: revision 1.10
	sys/net/if_l2tp.c: revision 1.18
	sys/netinet/in_l2tp.c: revision 1.11
	sys/net/if_l2tp.c: revision 1.19
	sys/netinet/in_l2tp.c: revision 1.12

If if_attach() failed in the attach function, return. Add comments about if_initialize().
suggested by ozaki-r@n.o.

Fix null deref, m could be NULL if M_PREPEND fails.

style

Style, reduce the indentation level when possible, and add a missing NULL
check after M_PREPEND.

Several fixes in L2TP:
 * l2tp_input(): use m_copydata, and ensure there is enough space in the
   chain. Otherwise overflow.
 * l2tp_tcpmss_clamp(): ensure there is enough space in the chain.
 * in_l2tp_output(): don't check 'sc' against NULL, it can't be NULL.
 * in_l2tp_input(): no need to call m_pullup since we use m_copydata.
   Just check the space in the chain.
 * in_l2tp_input(): if there is a cookie, make sure the chain has enough
   space.
 * in6_l2tp_input(): same changes as in_l2tp_input().
Ok knakahara@

Use MH_ALIGN instead, ok knakahara@.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Fri Jan 26 07:49:15 2018 UTC (6 years, 10 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-base, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +10 -10 lines
Several fixes in L2TP:

 * l2tp_input(): use m_copydata, and ensure there is enough space in the
   chain. Otherwise overflow.

 * l2tp_tcpmss_clamp(): ensure there is enough space in the chain.

 * in_l2tp_output(): don't check 'sc' against NULL, it can't be NULL.

 * in_l2tp_input(): no need to call m_pullup since we use m_copydata.
   Just check the space in the chain.

 * in_l2tp_input(): if there is a cookie, make sure the chain has enough
   space.

 * in6_l2tp_input(): same changes as in_l2tp_input().

Ok knakahara@

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Jan 25 10:45:58 2018 UTC (6 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +38 -39 lines
Style, reduce the indentation level when possible, and add a missing NULL
check after M_PREPEND.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Jan 22 09:51:06 2018 UTC (6 years, 10 months ago) by maxv
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +8 -5 lines
Fix null deref, m could be NULL if M_PREPEND fails.

Revision 1.2.8.3: download - view: text, markup, annotated - select for diffs
Tue Jan 2 10:39:57 2018 UTC (6 years, 11 months ago) by snj
Branches: netbsd-8
Diff to: previous 1.2.8.2: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.2: +7 -9 lines
Pull up following revision(s) (requested by knakahara in ticket #461):
	sys/netinet/in_l2tp.c: revision 1.9
	sys/netinet6/in6_l2tp.c: revision 1.12
fix mbuf leaks. pointed out and suggested by kre@n.o, thanks.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Mon Dec 18 03:21:44 2017 UTC (6 years, 11 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +7 -9 lines
fix mbuf leaks. pointed out and suggested by kre@n.o, thanks.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Dec 18 03:20:12 2017 UTC (6 years, 11 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +7 -5 lines
backout wrong fix again, sorry.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Dec 15 05:01:16 2017 UTC (6 years, 11 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +5 -7 lines
Fix pullup'ed mbuf leaks. The match function just requires enough mbuf length.

XXX need pullup-8

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Dec 15 04:58:31 2017 UTC (6 years, 11 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +9 -5 lines
backout wrong fix as it causes atf net/ipsec/t_ipsec_l2tp failures.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Dec 11 02:17:35 2017 UTC (7 years ago) by knakahara
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +5 -9 lines
fix pullup'ed mbuf leaks. pointed out by maxv@n.o, thanks.

XXX need pullup-8

Revision 1.2.8.2: download - view: text, markup, annotated - select for diffs
Sun Dec 10 09:41:31 2017 UTC (7 years ago) by snj
Branches: netbsd-8
Diff to: previous 1.2.8.1: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.8.1: +4 -4 lines
Pull up following revision(s) (requested by knakahara in ticket #419):
	sys/net/if_stf.c: revision 1.103
	sys/net/if_stf.h: revision 1.8
	sys/netinet/in_gif.c: revision 1.89
	sys/netinet/in_gif.h: revision 1.17
	sys/netinet/in_l2tp.c: revision 1.4
	sys/netinet/ip_encap.c: revision 1.66
	sys/netinet/ip_encap.h: revision 1.23
	sys/netinet/ip_mroute.c: revision 1.148
	sys/netinet6/in6_gif.c: revision 1.87
	sys/netinet6/in6_gif.h: revision 1.16
	sys/netinet6/in6_l2tp.c: revision 1.7
	sys/netipsec/xform.h: revision 1.13
	sys/netipsec/xform_ipip.c: revision 1.55
Add argument to encapsw->pr_input() instead of m_tag.

Revision 1.4.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:39:04 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.4.2.1: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.2.1: +416 -0 lines
update from HEAD

Revision 1.4.2.1
Wed Nov 15 10:42:41 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
FILE REMOVED
Changes since revision 1.4: +0 -416 lines
file in_l2tp.c was added on branch tls-maxphys on 2017-12-03 11:39:04 +0000

Revision 1.4: download - view: text, markup, annotated - select for diffs
Wed Nov 15 10:42:41 2017 UTC (7 years ago) by knakahara
Branches: MAIN
CVS tags: tls-maxphys-base-20171202
Branch point for: tls-maxphys
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +4 -4 lines
Add argument to encapsw->pr_input() instead of m_tag.

Revision 1.3.4.2: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:53:12 2017 UTC (7 years, 3 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.3.4.1: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.4.1: +416 -0 lines
Sync with HEAD

Revision 1.2.8.1: download - view: text, markup, annotated - select for diffs
Wed Jul 12 13:42:11 2017 UTC (7 years, 5 months ago) by martin
Branches: netbsd-8
CVS tags: matt-nb8-mediatek-base, matt-nb8-mediatek
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +5 -3 lines
Pull up following revision(s) (requested by knakahara in ticket #121):
	sys/netinet6/in6_l2tp.c: revision 1.6
	sys/netinet/in_l2tp.c: revision 1.3
l2tp(4): fix mbuf leak when tunnel nested over the limit
XXX need pullup -8 branch

Revision 1.3.4.1
Tue Jul 11 05:03:45 2017 UTC (7 years, 5 months ago) by skrll
Branches: nick-nhusb
FILE REMOVED
Changes since revision 1.3: +0 -416 lines
file in_l2tp.c was added on branch nick-nhusb on 2017-08-28 17:53:12 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Jul 11 05:03:45 2017 UTC (7 years, 5 months ago) by knakahara
Branches: MAIN
CVS tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825
Branch point for: nick-nhusb
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +5 -3 lines
l2tp(4): fix mbuf leak when tunnel nested over the limit

XXX need pullup -8 branch

Revision 1.1.2.3: download - view: text, markup, annotated - select for diffs
Wed Apr 26 02:53:29 2017 UTC (7 years, 7 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.2: +2 -7 lines
Sync with HEAD

Revision 1.2.4.2: download - view: text, markup, annotated - select for diffs
Fri Apr 21 16:54:05 2017 UTC (7 years, 7 months ago) by bouyer
Branches: bouyer-socketcan
Diff to: previous 1.2.4.1: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.4.1: +414 -0 lines
Sync with HEAD

Revision 1.2.4.1
Thu Mar 30 23:13:54 2017 UTC (7 years, 8 months ago) by bouyer
Branches: bouyer-socketcan
FILE REMOVED
Changes since revision 1.2: +0 -414 lines
file in_l2tp.c was added on branch bouyer-socketcan on 2017-04-21 16:54:05 +0000

Revision 1.2: download - view: text, markup, annotated - select for diffs
Thu Mar 30 23:13:54 2017 UTC (7 years, 8 months ago) by knakahara
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, netbsd-8-base, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Branch point for: netbsd-8, bouyer-socketcan
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +2 -7 lines
remove duplicated validation. That is already done in l2tp_lookup_session_ref().

pointed out by s-yamaguchi@IIJ, thanks.

Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Mon Mar 20 06:57:50 2017 UTC (7 years, 8 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +419 -0 lines
Sync with HEAD

Revision 1.1.2.1
Thu Feb 16 08:23:35 2017 UTC (7 years, 9 months ago) by pgoyette
Branches: pgoyette-localcount
FILE REMOVED
Changes since revision 1.1: +0 -419 lines
file in_l2tp.c was added on branch pgoyette-localcount on 2017-03-20 06:57:50 +0000

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Feb 16 08:23:35 2017 UTC (7 years, 9 months ago) by knakahara
Branches: MAIN
CVS tags: pgoyette-localcount-20170320
Branch point for: pgoyette-localcount
add missing files.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>