--- - branch: netbsd-8 date: Tue Sep 24 18:27:10 UTC 2019 files: - new: 1.394.2.18 old: 1.394.2.17 path: src/sys/net/if.c pathrev: src/sys/net/if.c@1.394.2.18 type: modified - new: 1.239.2.8 old: 1.239.2.7 path: src/sys/net/if.h pathrev: src/sys/net/if.h@1.239.2.8 type: modified - new: 1.126.2.15 old: 1.126.2.14 path: src/sys/net/if_gif.c pathrev: src/sys/net/if_gif.c@1.126.2.15 type: modified - new: 1.25.8.5 old: 1.25.8.4 path: src/sys/net/if_gif.h pathrev: src/sys/net/if_gif.h@1.25.8.5 type: modified - new: 1.3.2.12 old: 1.3.2.11 path: src/sys/net/if_ipsec.c pathrev: src/sys/net/if_ipsec.c@1.3.2.12 type: modified - new: 1.1.2.5 old: 1.1.2.4 path: src/sys/net/if_ipsec.h pathrev: src/sys/net/if_ipsec.h@1.1.2.5 type: modified - new: 1.11.2.11 old: 1.11.2.10 path: src/sys/net/if_l2tp.c pathrev: src/sys/net/if_l2tp.c@1.11.2.11 type: modified - new: 1.2.2.4 old: 1.2.2.3 path: src/sys/net/if_l2tp.h pathrev: src/sys/net/if_l2tp.h@1.2.2.4 type: modified - new: 1.194.6.14 old: 1.194.6.13 path: src/sys/net/route.c pathrev: src/sys/net/route.c@1.194.6.14 type: modified - new: 1.112.4.6 old: 1.112.4.5 path: src/sys/net/route.h pathrev: src/sys/net/route.h@1.112.4.6 type: modified - new: 1.87.8.6 old: 1.87.8.5 path: src/sys/netinet/in_gif.c pathrev: src/sys/netinet/in_gif.c@1.87.8.6 type: modified - new: 1.2.8.8 old: 1.2.8.7 path: src/sys/netinet/in_l2tp.c pathrev: src/sys/netinet/in_l2tp.c@1.2.8.8 type: modified - new: 1.355.2.8 old: 1.355.2.7 path: src/sys/netinet/ip_input.c pathrev: src/sys/netinet/ip_input.c@1.355.2.8 type: modified - new: 1.3.2.2 old: 1.3.2.1 path: src/sys/netinet/wqinput.c pathrev: src/sys/netinet/wqinput.c@1.3.2.2 type: modified - new: 1.85.6.7 old: 1.85.6.6 path: src/sys/netinet6/in6_gif.c pathrev: src/sys/netinet6/in6_gif.c@1.85.6.7 type: modified - new: 1.5.8.8 old: 1.5.8.7 path: src/sys/netinet6/in6_l2tp.c pathrev: src/sys/netinet6/in6_l2tp.c@1.5.8.8 type: modified - new: 1.87.2.4 old: 1.87.2.3 path: src/sys/netinet6/ip6_forward.c pathrev: src/sys/netinet6/ip6_forward.c@1.87.2.4 type: modified - new: 1.178.2.9 old: 1.178.2.8 path: src/sys/netinet6/ip6_input.c pathrev: src/sys/netinet6/ip6_input.c@1.178.2.9 type: modified - new: 1.48.2.4 old: 1.48.2.3 path: src/sys/netipsec/ipsec_output.c pathrev: src/sys/netipsec/ipsec_output.c@1.48.2.4 type: modified - new: 1.1.2.9 old: 1.1.2.8 path: src/sys/netipsec/ipsecif.c pathrev: src/sys/netipsec/ipsecif.c@1.1.2.9 type: modified - new: 1.163.2.14 old: 1.163.2.13 path: src/sys/netipsec/key.c pathrev: src/sys/netipsec/key.c@1.163.2.14 type: modified id: 20190924T182710Z.fca24192541db299a5cb158057ca41e32315dbe1 log: "Pull up following revision(s) (requested by knakahara in ticket #1385):\n\n\tsys/net/if.c\t\t\t\t1.461\n\tsys/net/if.h\t\t\t\t1.277\n\tsys/net/if_gif.c\t\t\t1.149\n\tsys/net/if_gif.h\t\t\t1.33\n\tsys/net/if_ipsec.c\t\t\t1.19,1.20,1.24\n\tsys/net/if_ipsec.h\t\t\t1.5\n\tsys/net/if_l2tp.c\t\t\t1.33,1.36-1.39\n\tsys/net/if_l2tp.h\t\t\t1.7,1.8\n\tsys/net/route.c\t\t\t\t1.220,1.221\n\tsys/net/route.h\t\t\t\t1.125\n\tsys/netinet/in_gif.c\t\t\t1.95\n\tsys/netinet/in_l2tp.c\t\t\t1.17\n\tsys/netinet/ip_input.c\t\t\t1.391,1.392\n\tsys/netinet/wqinput.c\t\t\t1.6\n\tsys/netinet6/in6_gif.c\t\t\t1.94\n\tsys/netinet6/in6_l2tp.c\t\t\t1.18\n\tsys/netinet6/ip6_forward.c\t\t1.97\n\tsys/netinet6/ip6_input.c\t\t1.210,1.211\n\tsys/netipsec/ipsec_output.c\t\t1.82,1.83 (patched)\n\tsys/netipsec/ipsecif.c\t\t\t1.12,1.13,1.15,1.17 (patched)\n\tsys/netipsec/key.c\t\t\t1.259,1.260\n\nipsecif(4) support input drop packet counter.\n\nipsecif(4) should not increment drop counter by errors not related to if_snd. Pointed out by ozaki-r@n.o, thanks.\nRemove unnecessary addresses in PF_KEY message.\n\nMOBIKE Extensions for PF_KEY draft-schilcher-mobike-pfkey-extension-01.txt says\n====================\n5. SPD Update\n// snip\n SADB_X_SPDADD:\n// snip\n \ sadb_x_ipsecrequest_reqid:\n An ID for that SA can be passed to the kernel in the\n sadb_x_ipsecrequest_reqid field.\n If tunnel mode is specified, the sadb_x_ipsecrequest structure is\n followed by two sockaddr structures that define the tunnel\n endpoint addresses. In the case that transport mode is used, no\n additional addresses are specified.\n====================\nsee: https://tools.ietf.org/html/draft-schilcher-mobike-pfkey-extension-01\n\nipsecif(4) uses transport mode, so it should not add addresses.\n\nipsecif(4) supports multiple peers in the same NAPT.\n\nE.g. ipsec0 connects between NetBSD_A and NetBSD_B, ipsec1 connects\nNetBSD_A and NetBSD_C at the following figure.\n +----------+\n \ +----| NetBSD_B |\n +----------+ +------+ \ | +----------+\n | NetBSD_A |--- ... ---| NAPT |---+\n +----------+ +------+ \ | +----------+\n +----| NetBSD_C |\n +----------+\n\nAdd ATF later.\n\nl2tp(4): fix output bytes counter. Pointed by k-goda@IIJ, thanks.\nremove a variable which is no longer used.\n\nl2tp: initialize mowner variables for MBUFTRACE\n\nAvoid having a rtcache directly in a percpu storage\npercpu(9) has a certain memory storage for each CPU and provides it by the piece\nto users. If the storages went short, percpu(9) enlarges them by allocating new\nlarger memory areas, replacing old ones with them and destroying the old ones.\nA percpu storage referenced by a pointer gotten via percpu_getref can be\ndestroyed by the mechanism after a running thread sleeps even if percpu_putref\nhas not been called.\n\nUsing rtcache, i.e., packet processing, typically involves sleepable operations\nsuch as rwlock so we must avoid dereferencing a rtcache that is directly stored\nin a percpu storage during packet processing. Address this situation by having\njust a pointer to a rtcache in a percpu storage instead.\n\nReviewed by knakahara@ and yamaguchi@\n\nwqinput: avoid having struct wqinput_worklist directly in a percpu storage\npercpu(9) has a certain memory storage for each CPU and provides it by the piece\nto users. \ If the storages went short, percpu(9) enlarges them by allocating new\nlarger memory areas, replacing old ones with them and destroying the old ones.\n\nA percpu storage referenced by a pointer gotten via percpu_getref can be\ndestroyed by the mechanism after a running thread sleeps even if percpu_putref\nhas not been called.\n\nInput handlers of wqinput normally involves sleepable operations so we must\navoid dereferencing a percpu data (struct wqinput_worklist) after executing\nan input handler. Address this situation by having just a pointer to the data\nin a percpu storage instead.\n\nReviewed by knakahara@ and yamaguchi@\n\nAdd missing #include \n\nDivide Tx context of l2tp(4) to improve performance.\nIt seems l2tp(4) call path is too long for instruction cache. So, dividing\nl2tp(4) Tx context improves CPU use efficiency.\n\nAfter this commit, l2tp(4) throughput gains 10% on my machine(Atom C3000).\n\nApply some missing changes lost on the previous commit\n\nAvoid having a rtcache directly in a percpu storage for tunnel protocols.\npercpu(9) has a certain memory storage for each CPU and provides it by the piece\nto users. If the storages went short, percpu(9) enlarges them by allocating new\nlarger memory areas, replacing old ones with them and destroying the old ones.\nA percpu storage referenced by a pointer gotten via percpu_getref can be\ndestroyed by the mechanism after a running thread sleeps even if percpu_putref\nhas not been called.\n\nUsing rtcache, i.e., packet processing, typically involves sleepable operations\nsuch as rwlock so we must avoid dereferencing a rtcache that is directly stored\nin a percpu storage during packet processing. Address this situation by having\njust a pointer to a rtcache in a percpu storage instead.\n\nReviewed by ozaki-r@ and yamaguchi@\n\nl2tp(4): avoid having struct ifqueue directly in a percpu storage.\n\npercpu(9) has a certain memory storage for each CPU and provides it by the piece\nto users. If the storages went short, percpu(9) enlarges them by allocating new\nlarger memory areas, replacing old ones with them and destroying the old ones.\n\nA percpu storage referenced by a pointer gotten via percpu_getref can be\ndestroyed by the mechanism after a running thread sleeps even if percpu_putref\nhas not been called.\n\nTx processing of l2tp(4) uses normally involves sleepable operations so we\nmust avoid dereferencing a percpu data (struct ifqueue) after executing Tx\nprocessing. Address this situation by having just a pointer to the data in\na percpu storage instead.\n\nReviewed by ozaki-r@ and yamaguchi@\n" module: src subject: 'CVS commit: [netbsd-8] src/sys' unixtime: '1569349630' user: martin