The NetBSD Project

CVS log for src/sys/net/if_mpls.c

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.41: download - view: text, markup, annotated - select for diffs
Sat Sep 3 20:29:31 2022 UTC (2 years, 7 months ago) by thorpej
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, netbsd-10-base, netbsd-10-1-RELEASE, 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, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +5 -2 lines
Machete-waving to fix mpls rump build after pktqueue changes.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Sep 3 02:47:59 2022 UTC (2 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +2 -3 lines
Garbage-collect the remaining vestiges of netisr.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Sat Sep 3 02:24:59 2022 UTC (2 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +4 -11 lines
Convert MPLS from a legacy netisr to pktqueue.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Fri Jul 29 15:25:51 2022 UTC (2 years, 8 months ago) by skrll
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +2 -6 lines
No need to wrap the call to if_detach with splnet / splx as if_detach
raises spl as required.

Revision 1.36.10.1: download - view: text, markup, annotated - select for diffs
Thu Jun 17 04:46:35 2021 UTC (3 years, 10 months ago) by thorpej
Branches: thorpej-i2c-spi-conf
Diff to: previous 1.36: preferred, colored; next MAIN 1.37: preferred, colored
Changes since revision 1.36: +3 -9 lines
Sync w/ HEAD.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Wed Jun 16 00:21:19 2021 UTC (3 years, 10 months ago) by riastradh
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +3 -9 lines
if_attach and if_initialize cannot fail, don't test return value

These were originally made failable back in 2017 when if_initialize
allocated a softint in every interface for link state changes, so
that it could fail gracefully instead of panicking:

https://mail-index.NetBSD.org/source-changes/2017/10/23/msg089053.html

However, this spawned many seldom- or never-tested error branches,
which are risky to have around.  And that softint in every interface
has since been replaced by a single global workqueue, because link
state changes require thread context but not low latency or high
throughput:

https://mail-index.NetBSD.org/source-changes/2020/02/06/msg113759.html

So there is no longer any reason for if_initialize to fail.  (The
subroutine if_stats_init can't fail because percpu_alloc can't fail
either.)

There is a snag: the softint_establish in if_percpuq_create could
fail, potentially leading to bad consequences later on trying to use
the softint.  This change doesn't introduce any new bugs because of
the snag -- if_percpuq_attach was already broken.  However, the snag
can be better addressed without spawning error branches, either by
using a single softint or making softints less scarce.

(Separate commit will change the signatures of if_attach and
if_initialize to return void, scheduled to ride whatever is the next
convenient kernel bump.)

Patch and testing on amd64 and evbmips64-eb by maya@; commit message
soliloquy, and compile-testing on evbppc/i386/earmv7hf, by me.

Revision 1.34.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:57 2020 UTC (5 years ago) by martin
Branches: phil-wifi
Diff to: previous 1.34.2.1: preferred, colored; branchpoint 1.34: preferred, colored; next MAIN 1.35: preferred, colored
Changes since revision 1.34.2.1: +4 -5 lines
Merge changes from current as of 20200406

Revision 1.35.4.1: download - view: text, markup, annotated - select for diffs
Sat Feb 29 20:21:06 2020 UTC (5 years, 1 month ago) by ad
Branches: ad-namecache
Diff to: previous 1.35: preferred, colored; next MAIN 1.36: preferred, colored
Changes since revision 1.35: +4 -5 lines
Sync with head.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Wed Jan 29 04:18:34 2020 UTC (5 years, 2 months ago) by thorpej
Branches: MAIN
CVS tags: thorpej-futex-base, thorpej-futex, thorpej-cfargs-base, thorpej-cfargs, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3
Branch point for: thorpej-i2c-spi-conf
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +4 -5 lines
Adopt <net/if_stats.h>.

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

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sat Apr 27 06:18:15 2019 UTC (5 years, 11 months ago) by pgoyette
Branches: MAIN
CVS tags: phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, 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, netbsd-9, ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +3 -3 lines
A few more empty-string --> NULL in required-modules lists

Revision 1.33.2.1: download - view: text, markup, annotated - select for diffs
Sat Jul 28 04:38:10 2018 UTC (6 years, 8 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.33: preferred, colored; next MAIN 1.34: preferred, colored
Changes since revision 1.33: +4 -4 lines
Sync with HEAD

Revision 1.34: download - view: text, markup, annotated - select for diffs
Tue Jun 26 06:48:02 2018 UTC (6 years, 9 months ago) by msaitoh
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +4 -4 lines
 Implement the BPF direction filter (BIOC[GS]DIRECTION). It provides backward
compatibility with BIOC[GS]SEESENT ioctl. The userland interface is the same
as FreeBSD.

 This change also fixes a bug that the direction is misunderstand on some
environment by passing the direction to bpf_mtap*() instead of checking
m->m_pkthdr.rcvif.

Revision 1.8.8.2: download - view: text, markup, annotated - select for diffs
Tue Mar 13 17:42:41 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-6
Diff to: previous 1.8.8.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.8.1: +60 -42 lines
Pull up following revision(s) (requested by uwe in ticket #1534):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9 via patch
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.8.22.2: download - view: text, markup, annotated - select for diffs
Tue Mar 13 17:42:39 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-6-1
Diff to: previous 1.8.22.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.22.1: +60 -42 lines
Pull up following revision(s) (requested by uwe in ticket #1534):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9 via patch
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.8.14.2: download - view: text, markup, annotated - select for diffs
Tue Mar 13 17:42:37 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-6-0
Diff to: previous 1.8.14.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.14.1: +60 -42 lines
Pull up following revision(s) (requested by uwe in ticket #1534):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9 via patch
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.16.2.1: download - view: text, markup, annotated - select for diffs
Sat Feb 24 18:29:40 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-7
CVS tags: netbsd-7-2-RELEASE
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +70 -46 lines
Pull up following revision(s) (requested by maxv in ticket #1571):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * Declare TRIM_LABEL as a function.
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.16.10.1: download - view: text, markup, annotated - select for diffs
Sat Feb 24 18:29:38 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-7-1
CVS tags: netbsd-7-1-2-RELEASE
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +70 -46 lines
Pull up following revision(s) (requested by maxv in ticket #1571):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * Declare TRIM_LABEL as a function.
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.16.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 24 18:29:36 2018 UTC (7 years, 1 month ago) by snj
Branches: netbsd-7-0
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +70 -46 lines
Pull up following revision(s) (requested by maxv in ticket #1571):
	sys/net/if_mpls.c: 1.31-1.33 via patch
	sys/netmpls/mpls_ttl.c: 1.9
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * Declare TRIM_LABEL as a function.
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.29.8.2: download - view: text, markup, annotated - select for diffs
Mon Feb 12 18:18:00 2018 UTC (7 years, 2 months ago) by snj
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Diff to: previous 1.29.8.1: preferred, colored; branchpoint 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29.8.1: +105 -72 lines
Pull up following revision(s) (requested by maxv in ticket #546):
	sys/net/if_mpls.c: 1.31-1.33
	sys/netmpls/mpls_ttl.c: 1.9-1.11
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.
--
Kick MPLS packets earlier.
--
Several changes:
 * Declare TRIM_LABEL as a function.
 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.
 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.
--
Style in MPLS.
--
Add XXX.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Jan 19 15:04:29 2018 UTC (7 years, 3 months ago) by maxv
Branches: MAIN
CVS tags: pgoyette-compat-base, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, 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.32: preferred, colored
Changes since revision 1.32: +41 -27 lines
Several changes:

 * Declare TRIM_LABEL as a function.

 * In mpls_unlabel_inet, copy the label locally. It's not incorrect to
   keep a pointer on the mbuf, but it's bug-friendly.

 * In mpls_label_inetX, fix the length check. Meanwhile add an XXX: we
   just want to make sure that m_copydata won't fail, but if we were
   guaranteed that m has M_PKTHDR set, we could simply check the length
   against m->m_pkthdr.len.

Revision 1.29.8.1: download - view: text, markup, annotated - select for diffs
Sun Dec 10 10:10:25 2017 UTC (7 years, 4 months ago) by snj
Branches: netbsd-8
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +9 -3 lines
Pull up following revision(s) (requested by msaitoh in ticket #427):
	sys/arch/amiga/dev/if_bah_zbus.c: 1.17
	sys/arch/arm/broadcom/bcm53xx_eth.c: 1.30
	sys/arch/powerpc/booke/dev/pq3etsec.c: 1.32
	sys/arch/usermode/dev/if_veth.c: 1.9
	sys/dev/ic/an.c: 1.66
	sys/dev/ic/athn.c: 1.17
	sys/dev/ic/atw.c: 1.162
	sys/dev/ic/bwi.c: 1.33
	sys/dev/ic/dwc_gmac.c: 1.41-1.42
	sys/dev/ic/malo.c: 1.10
	sys/dev/ic/rt2560.c: 1.31
	sys/dev/ic/rt2661.c: 1.36
	sys/dev/ic/rt2860.c: 1.29
	sys/dev/ic/rtw.c: 1.127
	sys/dev/ic/rtwvar.h: 1.46
	sys/dev/ic/smc90cx6.c: 1.71
	sys/dev/ic/smc90cx6var.h: 1.12
	sys/dev/ic/wi.c: 1.244
	sys/dev/pci/if_ipw.c: 1.66
	sys/dev/pci/if_iwi.c: 1.104
	sys/dev/pci/if_iwm.c: 1.76
	sys/dev/pci/if_iwn.c: 1.86
	sys/dev/pci/if_rtwn.c: 1.13
	sys/dev/pci/if_wm.c: 1.541
	sys/dev/pci/if_wpi.c: 1.79
	sys/dev/pci/ixgbe/ixgbe.c: 1.106
	sys/dev/pci/ixgbe/ixv.c: 1.73 via patch
	sys/dev/pcmcia/if_malo_pcmcia.c: 1.15
	sys/dev/scsipi/if_se.c: 1.95
	sys/dev/usb/if_upl.c: 1.60
	sys/net/if.c: 1.396
	sys/net/if.h: 1.241
	sys/net/if_arc.h: 1.23
	sys/net/if_arcsubr.c: 1.78
	sys/net/if_bridge.c: 1.136-1.137
	sys/net/if_etherip.c: 1.39
	sys/net/if_faith.c: 1.56
	sys/net/if_gif.c: 1.131
	sys/net/if_loop.c: 1.96
	sys/net/if_mpls.c: 1.30
	sys/net/if_pppoe.c: 1.129
	sys/net/if_srt.c: 1.27
	sys/net/if_stf.c: 1.102
	sys/net/if_tap.c: 1.100
	sys/net/if_vlan.c: 1.105
	sys/netinet/ip_carp.c: 1.91
	sys/rump/net/lib/libshmif/if_shmem.c: 1.73-1.74
	sys/rump/net/lib/libvirtif/if_virt.c: 1.55-1.56
 if_initalize() and if_attach() failed when resource allocation failed
(e.g. allocating softint). Without this change, it panics. It's bad because
resource shortage really occured when a lot of pseudo interface is created.
To avoid this problem, don't panic and change return value of if_initialize()
and if_attach() to int. Caller fanction will be recover from error cleanly by
checking the return value.
 Return if bah_attach_subr() failed.
 If if_attach() failed in the attach function, return.
- If if_initialize() failed in the attach function, free resources and return.
- Add some missing frees in bridge_clone_destroy().
- KNF
 If error occured in bcmeth_ccb_attach(), free resources and return.
 If error occured in pq3etsec_attach(), free resources and return.
 If error occured in the attach function, free resources and return.
- If if_initialize() failed in athn_attach(), free resources and return.
- Add missing pmf_event_deregister() in athn_detach().
- Free resources correctly on some errors in atw_attach().
- Use apint*() insread of printf() in the attach function.
 If if_initialize() failed in the attach function, return.
- If if_initialize() failed in the attach function, free resources and return.
- Add missing dwc_gmac_free_dma_rings() and mutex_destroy() when attach
   failed.
- If if_initialize() failed in the attach function, free resources and return.
- ifp is always not NULL in iwi_detach(). Check correctly with ifp->if_softc.
- If if_initialize() failed in the attach function, free resources and return.
- Fix error path in the attach function correctly.
 If if_initialize() failed in the attach function, free resources and return.
 If if_attach() failed in the attach function, free resources and return.
 - If if_initialize() failed in the attach function, free resources and return.
 - KNF
 - If if_attach() failed in the attach function, free resources and return.
 - KNF
 Fix compile error.
 Fix compile error.
We don't need '&mii', but just 'mii' for mii_detach().
Don't free sc_rthash twice

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sat Dec 9 10:30:30 2017 UTC (7 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +8 -5 lines
Kick MPLS packets earlier.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Fri Dec 8 17:49:54 2017 UTC (7 years, 4 months ago) by maxv
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +60 -44 lines
Style, and fix several bugs:
 - ip4_check(), mpls_unlabel_inet() and mpls_unlabel_inet6() perform
   pullups, so we need to pass the updated pointers back
 - in mpls_lse() the route is not always freed
Looks a little better now.

Revision 1.8.12.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:39:02 2017 UTC (7 years, 4 months ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.8.12.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.12.1: +78 -28 lines
update from HEAD

Revision 1.30: download - view: text, markup, annotated - select for diffs
Mon Oct 23 09:32:00 2017 UTC (7 years, 6 months ago) by msaitoh
Branches: MAIN
CVS tags: tls-maxphys-base-20171202
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +9 -3 lines
 If if_attach() failed in the attach function, free resources and return.

Revision 1.16.4.7: download - view: text, markup, annotated - select for diffs
Sun Feb 5 13:40:58 2017 UTC (8 years, 2 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.6: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.4.6: +4 -5 lines
Sync with HEAD

Revision 1.26.2.2: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:50 2017 UTC (8 years, 3 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.26.2.1: preferred, colored; branchpoint 1.26: preferred, colored; next MAIN 1.27: preferred, colored
Changes since revision 1.26.2.1: +4 -4 lines
Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.29: download - view: text, markup, annotated - select for diffs
Mon Dec 12 03:55:57 2016 UTC (8 years, 4 months ago) by ozaki-r
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +4 -4 lines
Make the routing table and rtcaches MP-safe

See the following descriptions for details.

Proposed on tech-kern and tech-net


Overview
--------

We protect the routing table with a rwock and protect
rtcaches with another rwlock. Each rtentry is protected
from being freed or updated via reference counting and psref.

Global rwlocks
--------------

There are two rwlocks; one for the routing table (rt_lock) and
the other for rtcaches (rtcache_lock). rtcache_lock covers
all existing rtcaches; there may have room for optimizations
(future work).

The locking order is rtcache_lock first and rt_lock is next.

rtentry references
------------------

References to an rtentry is managed with reference counting
and psref. Either of the two mechanisms is used depending on
where a rtentry is obtained. Reference counting is used when
we obtain a rtentry from the routing table directly via
rtalloc1 and rtrequest{,1} while psref is used when we obtain
a rtentry from a rtcache via rtcache_* APIs. In both cases,
a caller can sleep/block with holding an obtained rtentry.

The reasons why we use two different mechanisms are (i) only
using reference counting hurts the performance due to atomic
instructions (rtcache case) (ii) ease of implementation;
applying psref to APIs such rtaloc1 and rtrequest{,1} requires
additional works (adding a local variable and an argument).

We will finally migrate to use only psref but we can do it
when we have a lockless routing table alternative.

Reference counting for rtentry
------------------------------

rt_refcnt now doesn't count permanent references such as for
rt_timers and rtcaches, instead it is used only for temporal
references when obtaining a rtentry via rtalloc1 and rtrequest{,1}.
We can do so because destroying a rtentry always involves
removing references of rt_timers and rtcaches to the rtentry
and we don't need to track such references. This also makes
it easy to wait for readers to release references on deleting
or updating a rtentry, i.e., we can simply wait until the
reference counter is 0 or 1. (If there are permanent references
the counter can be arbitrary.)

rt_ref increments a reference counter of a rtentry and rt_unref
decrements it. rt_ref is called inside APIs (rtalloc1 and
rtrequest{,1} so users don't need to care about it while
users must call rt_unref to an obtained rtentry after using it.

rtfree is removed and we use rt_unref and rt_free instead.
rt_unref now just decrements the counter of a given rtentry
and rt_free just tries to destroy a given rtentry.

See the next section for destructions of rtentries by rt_free.

Destructions of rtentries
-------------------------

We destroy a rtentry only when we call rtrequst{,1}(RTM_DELETE);
the original implementation can destroy in any rtfree where it's
the last reference. If we use reference counting or psref, it's
easy to understand if the place that a rtentry is destroyed is
fixed.

rt_free waits for references to a given rtentry to be released
before actually destroying the rtentry. rt_free uses a condition
variable (cv_wait) (and psref_target_destroy for psref) to wait.

Unfortunately rtrequst{,1}(RTM_DELETE) can be called in softint
that we cannot use cv_wait. In that case, we have to defer the
destruction to a workqueue.

rtentry#rt_cv, rtentry#rt_psref and global variables
(see rt_free_global) are added to conduct the procedure.

Updates of rtentries
--------------------

One difficulty to use refcnt/psref instead of rwlock for rtentry
is updates of rtentries. We need an additional mechanism to
prevent readers from seeing inconsistency of a rtentry being
updated.

We introduce RTF_UPDATING flag to rtentries that are updating.
While the flag is set to a rtentry, users cannot acquire the
rtentry. By doing so, we avoid users to see inconsistent
rtentries.

There are two options when a user tries to acquire a rtentry
with the RTF_UPDATING flag; if a user runs in softint context
the user fails to acquire a rtentry (NULL is returned).
Otherwise a user waits until the update completes by waiting
on cv.

The procedure of a updater is simpler to destruction of
a rtentry. Wait on cv (and psref) and after all readers left,
proceed with the update.

Global variables (see rt_update_global) are added to conduct
the procedure.

Currently we apply the mechanism to only RTM_CHANGE in
rtsock.c. We would have to apply other codes. See
"Known issues" section.

psref for rtentry
-----------------

When we obtain a rtentry from a rtcache via rtcache_* APIs,
psref is used to reference to the rtentry.

rtcache_ref acquires a reference to a rtentry with psref
and rtcache_unref releases the reference after using it.
rtcache_ref is called inside rtcache_* APIs and users don't
need to take care of it while users must call rtcache_unref
to release the reference.

struct psref and int bound that is needed for psref is
embedded into struct route. By doing so we don't need to
add local variables and additional argument to APIs.

However this adds another constraint to psref other than
reference counting one's; holding a reference of an rtentry
via a rtcache is allowed by just one caller at the same time.
So we must not acquire a rtentry via a rtcache twice and
avoid a recursive use of a rtcache. And also a rtcache must
be arranged to be used by a LWP/softint at the same time
somehow. For IP forwarding case, we have per-CPU rtcaches
used in softint so the constraint is guaranteed. For a h
rtcache of a PCB case, the constraint is guaranteed by the
solock of each PCB. Any other cases (pf, ipf, stf and ipsec)
are currently guaranteed by only the existence of the global
locks (softnet_lock and/or KERNEL_LOCK). If we've found the
cases that we cannot guarantee the constraint, we would need
to introduce other rtcache APIs that use simple reference
counting.

psref of rtcache is created with IPL_SOFTNET and so rtcache
shouldn't used at an IPL higher than IPL_SOFTNET.

Note that rtcache_free is used to invalidate a given rtcache.
We don't need another care by my change; just keep them as
they are.

Performance impact
------------------

When NET_MPSAFE is disabled the performance drop is 3% while
when it's enabled the drop is increased to 11%. The difference
comes from that currently we don't take any global locks and
don't use psref if NET_MPSAFE is disabled.

We can optimize the performance of the case of NET_MPSAFE
on by reducing lookups of rtcache that uses psref;
currently we do two lookups but we should be able to trim
one of two. This is a future work.

Known issues
------------

There are two known issues to be solved; one is that
a caller of rtrequest(RTM_ADD) may change rtentry (see rtinit).
We need to prevent new references during the update. Or
we may be able to remove the code (perhaps, need more
investigations).

The other is rtredirect that updates a rtentry. We need
to apply our update mechanism, however it's not easy because
rtredirect is called in softint and we cannot apply our
mechanism simply. One solution is to defer rtredirect to
a workqueue but it requires some code restructuring.

Revision 1.26.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 4 14:49:20 2016 UTC (8 years, 5 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +6 -6 lines
Sync with HEAD

Revision 1.16.4.6: download - view: text, markup, annotated - select for diffs
Wed Oct 5 20:56:08 2016 UTC (8 years, 6 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.5: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.4.5: +47 -10 lines
Sync with HEAD

Revision 1.28: download - view: text, markup, annotated - select for diffs
Mon Oct 3 11:06:06 2016 UTC (8 years, 6 months ago) by ozaki-r
Branches: MAIN
CVS tags: pgoyette-localcount-20161104, nick-nhusb-base-20161204, nick-nhusb-base-20161004
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +6 -6 lines
Fix race condition on ifqueue used by traditional netisr

If a underlying network device driver supports MSI/MSI-X, RX interrupts
can be delivered to arbitrary CPUs. This means that Layer 2 subroutines
such as ether_input (softint) and subsequent Layer 3 subroutines (softint)
which are called via traditional netisr can be dispatched on an arbitrary
CPU. Layer 2 subroutines now run without any locks (expected) and so a
Layer 2 subroutine and a Layer 3 subroutine can run in parallel.

There is a shared data between a Layer 2 routine and a Layer 3 routine,
that is ifqueue and IF_ENQUEUE (from L2) and IF_DEQUEUE (from L3) on it
are racy now.

To fix the race condition, use ifqueue#ifq_lock to protect ifqueue
instead of splnet that is meaningless now.

The same race condition exists in route_intr. Fix it as well.

Reviewed by knakahara@

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sun Aug 7 17:38:34 2016 UTC (8 years, 8 months ago) by christos
Branches: MAIN
CVS tags: localcount-20160914
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +41 -5 lines
modularize some more drivers and merge the module glue

Revision 1.16.4.5: download - view: text, markup, annotated - select for diffs
Sat Jul 9 20:25:21 2016 UTC (8 years, 9 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.4: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.4.4: +6 -8 lines
Sync with HEAD

Revision 1.26: download - view: text, markup, annotated - select for diffs
Thu Jul 7 06:55:43 2016 UTC (8 years, 9 months ago) by msaitoh
Branches: MAIN
CVS tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20160907
Branch point for: pgoyette-localcount
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +3 -3 lines
KNF. Remove extra spaces. No functional change.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Mon Jun 20 22:59:36 2016 UTC (8 years, 10 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -3 lines
fix: kern/51259

Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon Jun 20 06:46:37 2016 UTC (8 years, 10 months ago) by knakahara
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +3 -5 lines
apply if_output_lock() to L3 callers which call ifp->if_output() of L2(or L3 tunneling).

Revision 1.23: download - view: text, markup, annotated - select for diffs
Fri Jun 10 13:31:44 2016 UTC (8 years, 10 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +4 -4 lines
Avoid storing a pointer of an interface in a mbuf

Having a pointer of an interface in a mbuf isn't safe if we remove big
kernel locks; an interface object (ifnet) can be destroyed anytime in any
packet processing and accessing such object via a pointer is racy. Instead
we have to get an object from the interface collection (ifindex2ifnet) via
an interface index (if_index) that is stored to a mbuf instead of an
pointer.

The change provides two APIs: m_{get,put}_rcvif_psref that use psref(9)
for sleep-able critical sections and m_{get,put}_rcvif that use
pserialize(9) for other critical sections. The change also adds another
API called m_get_rcvif_NOMPSAFE, that is NOT MP-safe and for transition
moratorium, i.e., it is intended to be used for places where are not
planned to be MP-ified soon.

The change adds some overhead due to psref to performance sensitive paths,
however the overhead is not serious, 2% down at worst.

Proposed on tech-kern and tech-net.

Revision 1.16.4.4: download - view: text, markup, annotated - select for diffs
Sun May 29 08:44:38 2016 UTC (8 years, 10 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.3: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.4.3: +15 -12 lines
Sync with HEAD

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Apr 28 00:16:56 2016 UTC (8 years, 11 months ago) by ozaki-r
Branches: MAIN
CVS tags: nick-nhusb-base-20160529
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +14 -11 lines
Constify rtentry of if_output

We no longer need to change rtentry below if_output.

The change makes it clear where rtentries are changed (or not)
and helps forthcoming locking (os psrefing) rtentries.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Tue Apr 26 09:30:01 2016 UTC (8 years, 11 months ago) by ozaki-r
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +3 -3 lines
Stop using rt_gwroute on packet sending paths

rt_gwroute of rtentry is a reference to a rtentry of the gateway
for a rtentry with RTF_GATEWAY. That was used by L2 (arp and ndp)
to look up L2 addresses. By separating L2 nexthop caches, we don't
need a route for the purpose and we can stop using rt_gwroute.
By doing so, we can reduce referencing and modifying rtentries,
which makes it easy to apply a lock (and/or psref) to the
routing table and rtentries.

One issue to do this is to keep RTF_REJECT behavior. It seems it
was broken when we moved rtalloc1 things from L2 output routines
(e.g., ether_output) to ip_hresolv_output, but (fortunately?)
it works unexpectedly. What we mistook are:
- RTF_REJECT was checked for any routes in L2 output routines,
  but in ip_hresolv_output it is checked only when the route
  is RTF_GATEWAY
- The RTF_REJECT check wasn't copied to IPv6 (nd6_output)

It seems that rt_gwroute checks hid the mistakes and it looked
work (unexpectedly) and removing rt_gwroute checks unveil the
issue. So we need to fix RTF_REJECT checks in ip_hresolv_output
and also add them to nd6_output.

One more point we have to care is returning an errno; we need
to mimic looutput behavior. Originally RTF_REJECT check was
done either in L2 output routines or in looutput. The latter is
applied when a reject route directs to a loopback interface.
However, now RTF_REJECT check is done before looutput so to keep
the original behavior we need to return an errno which looutput
chooses. Added rt_check_reject_route does such tweaks.

Revision 1.16.4.3: download - view: text, markup, annotated - select for diffs
Sat Mar 19 11:30:32 2016 UTC (9 years, 1 month ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.2: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.4.2: +3 -3 lines
Sync with HEAD

Revision 1.20: download - view: text, markup, annotated - select for diffs
Tue Feb 9 08:32:12 2016 UTC (9 years, 2 months ago) by ozaki-r
Branches: MAIN
CVS tags: nick-nhusb-base-20160422, nick-nhusb-base-20160319
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +3 -3 lines
Introduce softint-based if_input

This change intends to run the whole network stack in softint context
(or normal LWP), not hardware interrupt context. Note that the work is
still incomplete by this change; to that end, we also have to softint-ify
if_link_state_change (and bpf) which can still run in hardware interrupt.

This change softint-ifies at ifp->if_input that is called from
each device driver (and ieee80211_input) to ensure Layer 2 runs
in softint (e.g., ether_input and bridge_input). To this end,
we provide a framework (called percpuq) that utlizes softint(9)
and percpu ifqueues. With this patch, rxintr of most drivers just
queues received packets and schedules a softint, and the softint
dequeues packets and does rest packet processing.

To minimize changes to each driver, percpuq is allocated in struct
ifnet for now and that is initialized by default (in if_attach).
We probably have to move percpuq to softc of each driver, but it's
future work. At this point, only wm(4) has percpuq in its softc
as a reference implementation.

Additional information including performance numbers can be found
in the thread at tech-kern@ and tech-net@:
http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html

Acknowledgment: riastradh@ greatly helped this work.
Thank you very much!

Revision 1.16.4.2: download - view: text, markup, annotated - select for diffs
Tue Sep 22 12:06:10 2015 UTC (9 years, 7 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16.4.1: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.4.1: +9 -7 lines
Sync with HEAD

Revision 1.19: download - view: text, markup, annotated - select for diffs
Mon Aug 24 22:21:26 2015 UTC (9 years, 8 months ago) by pooka
Branches: MAIN
CVS tags: nick-nhusb-base-20151226, nick-nhusb-base-20150921
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +4 -2 lines
sprinkle _KERNEL_OPT

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Aug 20 14:40:19 2015 UTC (9 years, 8 months ago) by christos
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +4 -4 lines
include "ioconf.h" to get the 'void <driver>attach(int count);' prototype.

Revision 1.16.4.1: download - view: text, markup, annotated - select for diffs
Sat Jun 6 14:40:25 2015 UTC (9 years, 10 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +7 -2 lines
Sync with HEAD

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Jun 4 09:19:59 2015 UTC (9 years, 10 months ago) by ozaki-r
Branches: MAIN
CVS tags: nick-nhusb-base-20150606
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +7 -2 lines
Pull out route lookups from L2 output routines

Route lookups for routes of RTF_GATEWAY were done in L2 output
routines such as ether_output, but they should be done in L3
i.e., before L2 output routines. This change places the lookups
between L3 output routines (say ip_output) and the L2 output
routines.

The change is based on dyoung's patch submitted in the thread:
https://mail-index.netbsd.org/tech-net/2013/02/01/msg003847.html
You can find out detailed investigations by dyoung about the
issue in there.

Note that the change introduces a workaround for MPLS. ether_output
knew that it needs to fill the ethertype of a frame as MPLS,
based on a tag of an original route (rtentry), but now we don't
pass it to ehter_output. So we have to tell that in another way.
We use mtag to do so for now, which introduces some overhead.
We should fix it somehow in the future.

Discussed on tech-kern and tech-net.

Revision 1.8.12.1: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:04:34 2014 UTC (10 years, 8 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +60 -48 lines
Rebase to HEAD as of a few days ago.

Revision 1.11.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:56:15 2014 UTC (10 years, 8 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +17 -31 lines
Rebase.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Jul 17 10:46:57 2014 UTC (10 years, 9 months ago) by bouyer
Branches: MAIN
CVS tags: tls-maxphys-base, tls-earlyentropy-base, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-1-RELEASE, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE
Branch point for: nick-nhusb, netbsd-7-1, netbsd-7-0, netbsd-7
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +9 -3 lines
Make sure to call ifp->if_output() with KERNEL_LOCK held.
Should fix mpls-related atf tests.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Wed Jul 9 14:41:42 2014 UTC (10 years, 9 months ago) by rtr
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +4 -4 lines
* split PRU_ACCEPT function out of pr_generic() usrreq switches and put
  into a separate function xxx_accept(struct socket *, struct mbuf *)

note: future cleanup will take place to remove struct mbuf parameter
type and replace it with a more appropriate type.

patch reviewed by rmind

Revision 1.14: download - view: text, markup, annotated - select for diffs
Fri Jun 6 01:02:47 2014 UTC (10 years, 10 months ago) by rmind
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +4 -4 lines
- Eliminate RTFREE() macro in favour of rtfree() function.
- Make rtcache() function static.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Jun 5 23:48:16 2014 UTC (10 years, 10 months ago) by rmind
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +6 -26 lines
- Implement pktqueue interface for lockless IP input queue.
- Replace ipintrq and ip6intrq with the pktqueue mechanism.
- Eliminate kernel-lock from ipintr() and ip6intr().
- Some preparation work to push softnet_lock out of ipintr().

Discussed on tech-net.

Revision 1.8.2.1: download - view: text, markup, annotated - select for diffs
Thu May 22 11:41:09 2014 UTC (10 years, 11 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8: +46 -20 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.8.16.2: download - view: text, markup, annotated - select for diffs
Sun May 18 17:46:12 2014 UTC (10 years, 11 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.8.16.1: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.16.1: +32 -11 lines
sync with head

Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu May 15 07:48:41 2014 UTC (10 years, 11 months ago) by msaitoh
Branches: MAIN
CVS tags: rmind-smpnet-nbase, rmind-smpnet-base
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +3 -3 lines
 Put schednetisr(NETISR_IP) into splnet()/splx() pair.
This avoid extra ipintr() call with empty queue.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Fri Oct 25 09:25:32 2013 UTC (11 years, 6 months ago) by kefren
Branches: MAIN
CVS tags: yamt-pagecache-base9, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +31 -10 lines
RFC3032 conformance for Router Alert Label

Revision 1.8.16.1: download - view: text, markup, annotated - select for diffs
Wed Aug 28 23:59:36 2013 UTC (11 years, 7 months ago) by rmind
Branches: rmind-smpnet
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +25 -20 lines
sync with head

Revision 1.8.14.1: download - view: text, markup, annotated - select for diffs
Tue Jul 30 03:07:50 2013 UTC (11 years, 8 months ago) by msaitoh
Branches: netbsd-6-0
CVS tags: netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +10 -19 lines
Pull up following revision(s) (requested by kefren in ticket #921):
	sys/net/if_mpls.c: revision 1.9
stop abusing kmem during softint context to prevent panic

Revision 1.8.22.1: download - view: text, markup, annotated - select for diffs
Tue Jul 30 03:06:42 2013 UTC (11 years, 8 months ago) by msaitoh
Branches: netbsd-6-1
CVS tags: netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +10 -19 lines
Pull up following revision(s) (requested by kefren in ticket #921):
	sys/net/if_mpls.c: revision 1.9
stop abusing kmem during softint context to prevent panic

Revision 1.8.8.1: download - view: text, markup, annotated - select for diffs
Tue Jul 30 03:05:39 2013 UTC (11 years, 8 months ago) by msaitoh
Branches: netbsd-6
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +10 -19 lines
Pull up following revision(s) (requested by kefren in ticket #921):
	sys/net/if_mpls.c: revision 1.9
stop abusing kmem during softint context to prevent panic

Revision 1.9.2.1: download - view: text, markup, annotated - select for diffs
Tue Jul 23 21:07:37 2013 UTC (11 years, 9 months ago) by riastradh
Branches: riastradh-drm2
Diff to: previous 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9: +17 -3 lines
sync with HEAD

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Jul 23 11:11:55 2013 UTC (11 years, 9 months ago) by kefren
Branches: MAIN
CVS tags: riastradh-drm2-base2, riastradh-drm2-base1
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +17 -3 lines
Implement RFC4182 changes - switchable via sysctl

Revision 1.9: download - view: text, markup, annotated - select for diffs
Mon Jul 15 12:10:34 2013 UTC (11 years, 9 months ago) by kefren
Branches: MAIN
CVS tags: riastradh-drm2-base
Branch point for: riastradh-drm2
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +10 -19 lines
stop abusing kmem during softint context

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Jul 3 18:46:12 2011 UTC (13 years, 9 months ago) by kefren
Branches: MAIN
CVS tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys, rmind-smpnet, netbsd-6-1, netbsd-6-0, netbsd-6
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +6 -4 lines
Avoid putting implicit null labels on the wire

Revision 1.3.12.1: download - view: text, markup, annotated - select for diffs
Thu Jun 23 14:20:25 2011 UTC (13 years, 10 months ago) by cherry
Branches: cherry-xenmp
Diff to: previous 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3: +6 -5 lines
Catchup with rmind-uvmplock merge.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Wed Jun 22 19:08:29 2011 UTC (13 years, 10 months ago) by kefren
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +18 -3 lines
make LSE prepend the rest of the shims in they exist

Revision 1.6: download - view: text, markup, annotated - select for diffs
Tue Jun 21 14:30:19 2011 UTC (13 years, 10 months ago) by kefren
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +40 -17 lines
learn mpls interface how to prepend multiple shims by using a vector of
smpls_addrs in sockaddr_mpls. The number of smpls_addrs is found from
smpls_len. First label encountered is BoS.
XXX: need to do the same for LSE and this feature needs to be documented.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Jun 17 09:15:24 2011 UTC (13 years, 10 months ago) by kefren
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +4 -4 lines
teach loopback about MPLS. Prerequisite for MPLS tunnels

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Jun 16 19:47:31 2011 UTC (13 years, 10 months ago) by kefren
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +4 -3 lines
use ETHERTYPE_MPLS only for unicast packets (RFC3032)

Revision 1.3.6.2: download - view: text, markup, annotated - select for diffs
Tue Aug 17 06:47:44 2010 UTC (14 years, 8 months ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.3.6.1: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.6.1: +600 -0 lines
Sync with HEAD.

Revision 1.3.4.2: download - view: text, markup, annotated - select for diffs
Wed Aug 11 22:54:54 2010 UTC (14 years, 8 months ago) by yamt
Branches: yamt-nfs-mp
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: +600 -0 lines
sync with head.

Revision 1.3.2.2: download - view: text, markup, annotated - select for diffs
Sat Jul 3 01:19:59 2010 UTC (14 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.3.2.1: preferred, colored; branchpoint 1.3: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.2.1: +600 -0 lines
sync with head

Revision 1.3.6.1
Sun Jun 27 13:39:11 2010 UTC (14 years, 10 months ago) by uebayasi
Branches: uebayasi-xip
FILE REMOVED
Changes since revision 1.3: +0 -600 lines
file if_mpls.c was added on branch uebayasi-xip on 2010-08-17 06:47:44 +0000

Revision 1.3.4.1
Sun Jun 27 13:39:11 2010 UTC (14 years, 10 months ago) by yamt
Branches: yamt-nfs-mp
FILE REMOVED
Changes since revision 1.3: +0 -600 lines
file if_mpls.c was added on branch yamt-nfs-mp on 2010-08-11 22:54:54 +0000

Revision 1.3.2.1
Sun Jun 27 13:39:11 2010 UTC (14 years, 10 months ago) by rmind
Branches: rmind-uvmplock
FILE REMOVED
Changes since revision 1.3: +0 -600 lines
file if_mpls.c was added on branch rmind-uvmplock on 2010-07-03 01:19:59 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Jun 27 13:39:11 2010 UTC (14 years, 10 months ago) by kefren
Branches: MAIN
CVS tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, rmind-uvmplock-nbase, rmind-uvmplock-base, matt-mips64-premerge-20101231, jruoho-x86intr-base, jruoho-x86intr, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-nfs-mp, uebayasi-xip, rmind-uvmplock, cherry-xenmp
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +6 -5 lines
Don't assume that rt_tag family is AF_MPLS but verify it.
This way rt_tag can be used for other future work also, not only MPLS

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Jun 26 15:17:56 2010 UTC (14 years, 10 months ago) by kefren
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +4 -4 lines
Fix build for MPLS import: add options MPLS, changed pseudo-device mpls
to pseudo-device ifmpls

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Jun 26 14:24:28 2010 UTC (14 years, 10 months ago) by kefren
Branches: MAIN
Add MPLS support, proposed on tech-net@ a couple of days ago

Welcome to 5.99.33

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>