History log of /src/sys/netinet/udp_usrreq.c |
Revision | | Date | Author | Comments |
1.266 |
| 08-Oct-2024 |
riastradh | udp(4): Clarify udp4/6_espinudp and inp_overudp_cb return.
Cleanup to detect problems like this earlier:
PR kern/58688: userland panic of kernel via wg(4)
|
1.265 |
| 05-Jul-2024 |
rin | sys: Drop redundant NULL check before m_freem(9)
m_freem(9) safely has accepted NULL argument at least since 4.2BSD: https://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/src/sys/sys/uipc_mbuf.c
Compile-tested on amd64/ALL.
Suggested by knakahara@
|
1.264 |
| 04-Nov-2022 |
ozaki-r | branches: 1.264.8; inpcb: rename functions to inpcb_*
Inspired by rmind-smpnet patches.
|
1.263 |
| 28-Oct-2022 |
ozaki-r | inpcb: separate inpcb again to reduce the size of PCB for IPv4
The data size of PCB for IPv4 increased because of the merge of struct in6pcb. The change decreases the size to the original size by separating struct inpcb (again). struct in4pcb and in6pcb that embed struct inpcb are introduced.
Even after the separation, users don't need to realize the separation and only have to use some macros to access dedicated data. For example, inp->inp_laddr is now accessed through in4p_laddr(inp).
|
1.262 |
| 28-Oct-2022 |
ozaki-r | inpcb: integrate data structures of PCB into one
Data structures of network protocol control blocks (PCBs), i.e., struct inpcb, in6pcb and inpcb_hdr, are not organized well. Users of the data structures have to handle them separately and thus the code is cluttered and duplicated.
The commit integrates the data structures into one, struct inpcb. As a result, users of PCBs only have to handle just one data structure, so the code becomes simple.
One drawback is that the data size of PCB for IPv4 increases by 40 bytes (from 248 bytes to 288 bytes).
|
1.261 |
| 19-Feb-2021 |
christos | - 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 ]
|
1.260 |
| 14-Feb-2021 |
christos | - 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.
|
1.259 |
| 20-Aug-2020 |
riastradh | branches: 1.259.2; [ozaki-r] Changes to the kernel core for wireguard
|
1.258 |
| 27-Dec-2018 |
maxv | Remove unused arguments.
|
1.257 |
| 22-Nov-2018 |
knakahara | Support IPv6 NAT-T. Implemented by hsuenaga@IIJ and ohishi@IIJ.
Add ATF later.
|
1.256 |
| 14-Sep-2018 |
maxv | Use non-variadic function pointer in protosw::pr_input.
|
1.255 |
| 15-Jul-2018 |
maxv | Retire ipkdb entirely. The option was removed from the config files yesterday.
ok kamil christos
|
1.254 |
| 31-May-2018 |
maxv | branches: 1.254.2; Remove the non-IKE part of the computation, too.
|
1.253 |
| 31-May-2018 |
maxv | Remove support for non-IKE markers in the kernel. Discussed on tech-net@, and now in PR/53334. Basically non-IKE markers come from a deprecated draft, and our kernel code for them has never worked.
Setsockopt will now reject UDP_ENCAP_ESPINUDP_NON_IKE.
Perhaps we should also add a check in key_handle_natt_info(), to make sure we also reject UDP_ENCAP_ESPINUDP_NON_IKE in the SADB.
|
1.252 |
| 18-May-2018 |
maxv | IP6_EXTHDR_GET -> M_REGION_GET, no functional change.
|
1.251 |
| 13-May-2018 |
maxv | Clarify ESP-in-UDP.
|
1.250 |
| 01-May-2018 |
maxv | Remove unused argument from udp4_espinudp, and remove unused includes.
|
1.249 |
| 28-Apr-2018 |
maxv | Remove unused ipsec_var.h includes.
|
1.248 |
| 13-Apr-2018 |
maxv | Improve the check, we want to have len >= udphdr all the time, and not just when the packet size doesn't match the mbuf size.
Normally that's not a huge problem, since IP6_EXTHDR_GET gets called earlier, so we can't have
(ip_len == iphlen + len) && (len < sizeof(struct udphdr))
|
1.247 |
| 12-Apr-2018 |
maxv | Remove misleading comment; we're just checking the SP, not verifying the AH/ESP payload. While here style a bit.
|
1.246 |
| 19-Mar-2018 |
roy | socket: report receive buffer overflows
Add soroverflow() which increments the overflow counter, sets so_error to ENOBUFS and wakes the receive socket up. Replace all code that manually increments this counter with soroverflow(). Add soroverflow() to raw_input().
This allows userland to detect route(4) overflows so it can re-sync with the current state.
|
1.245 |
| 28-Feb-2018 |
maxv | branches: 1.245.2; Remove unused ipsec_private.h includes.
|
1.244 |
| 28-Feb-2018 |
maxv | Remove duplicate IPSEC_STATINC(IPSEC_STAT_IN_POLVIO), ipsec_in_reject already increases it. IPSEC6_STATINC is now unused, so remove it too.
|
1.243 |
| 26-Feb-2018 |
maxv | Dedup: merge ipsec4_in_reject and ipsec6_in_reject into ipsec_in_reject. While here fix misleading comment.
ok ozaki-r@
|
1.242 |
| 14-Feb-2018 |
maxv | Revert my two last changes in this file. They are apparently causing problems with racoon, I'll investigate this later.
|
1.241 |
| 12-Feb-2018 |
maxv | Don't rebase the pointers. 'm' is only allowed to become NULL (which means 'processed').
|
1.240 |
| 10-Feb-2018 |
maxv | If the socket wants a ESP-over-UDP packet, and the packet is incorrect, stop processing it instead of giving it to udp4_sendup. It just doesn't make any sense not to drop it.
I was already telling myself this the other day when I visited this place, but I just saw PR/36782 (11 years old) that suggests the exact same thing, so fix it.
Now, udp4_espinudp always frees the mbuf, and is made void. The packet is not processed any further afterwards.
|
1.239 |
| 08-Feb-2018 |
maxv | More style, no functional change.
|
1.238 |
| 08-Feb-2018 |
maxv | Style, and remove printfs.
|
1.237 |
| 08-Feb-2018 |
maxv | Fix three pretty bad mistakes in NAT-T:
* If we got a keepalive packet, we need to call m_freem, not m_free. Here the next mbufs in the chain are not freed. Seems easy to remotely DoS the system by sending fragmented keepalives in a loop.
* If !ipsec_used, free the mbuf.
* In udp_input, we need to update 'uh', because udp4_realinput may have modified the chain. Perhaps we also need to re-enforce alignment, so add an XXX.
|
1.236 |
| 11-Dec-2017 |
ryo | As is the case with IPV6_PKTINFO, IP_PKTINFO can be sent without EADDRINUSE even if the UDP address:port in use is specified.
|
1.235 |
| 10-Aug-2017 |
ryo | Add support IP_PKTINFO for sendmsg(2).
The source address or output interface can be specified by adding IP_PKTINFO to the control part of the message on a SOCK_DGRAM or SOCK_RAW socket.
Reviewed by ozaki-r@ and christos@. thanks.
|
1.234 |
| 06-Jul-2017 |
christos | Merge the two copies SO_TIMESTAMP/SO_OTIMESTAMP processing to a single function, and add a SOOPT_TIMESTAMP define reducing compat pollution from 5 places to 1.
|
1.233 |
| 20-Apr-2017 |
ozaki-r | branches: 1.233.4; Remove unnecessary NULL checks for inp_socket and in6p_socket
They cannot be NULL except for programming errors.
|
1.232 |
| 20-Apr-2017 |
ozaki-r | Simplify logic of udp4_sendup and udp6_sendup
They are always passed a socket with the same protocol faimiliy as its own: AF_INET for udp4_sendup and AF_INET6 for udp6_sendup.
|
1.231 |
| 03-Mar-2017 |
ozaki-r | Pass inpcb/in6pcb instead of socket to ip_output/ip6_output
- Passing a socket to Layer 3 is layer violation and even unnecessary - The change makes codes of callers and IPsec a bit simple
|
1.230 |
| 24-Jan-2017 |
ozaki-r | Tweak softnet_lock and NET_MPSAFE
- Don't hold softnet_lock in some functions if NET_MPSAFE - Add softnet_lock to sysctl_net_inet_icmp_redirtimeout - Add softnet_lock to expire_upcalls of ip_mroute.c - Restore softnet_lock for in{,6}_pcbpurgeif{,0} if NET_MPSAFE - Mark some softnet_lock for future work
|
1.229 |
| 18-Nov-2016 |
knakahara | branches: 1.229.2; fix: "ifconfig destory" can stalls when "ifconfig" is done parallel. This problem occurs only if NET_MPSAFE on.
ifconfig destroy side: kernel entry point is ifioctl => if_clone_destroy. pr_purgeif() acquires softnet_lock, and then ifa_remove() calls pserialize_perform() holding softnet_lock. ifconfig side: kernel entry point is socreate. pr_attach()(udp_attach_wrapper()) calls sosetlock(). In this call path, sosetlock() try to acquire softnet_lock. These can cause dead lock.
|
1.228 |
| 15-Nov-2016 |
mlelstv | Enforce alignment requirements that are violated in some cases. For machines that don't need strict alignment (i386,amd64,vax,m68k) this is a no-op.
Fixes PR kern/50766 but should be improved.
|
1.227 |
| 19-Oct-2016 |
ozaki-r | Remove unnecessary #ifdef IPSEC
The entire function is already in #ifdef IPSEC.
No functional change.
|
1.226 |
| 10-Jun-2016 |
ozaki-r | branches: 1.226.2; 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.
|
1.225 |
| 26-Apr-2016 |
ozaki-r | Sweep unnecessary route.h inclusions
|
1.224 |
| 15-Feb-2016 |
rtr | Reduce code duplication.
Split creation of IPv4-Mapped IPv6 addresses into its own function and use it.
No functional change intended. As posted to tech-net@
|
1.223 |
| 20-Jan-2016 |
riastradh | Give proper prototype to udp_output.
|
1.222 |
| 24-Aug-2015 |
pooka | sprinkle _KERNEL_OPT
|
1.221 |
| 02-May-2015 |
rtr | make connect syscall use sockaddr_big and modify pr_{send,connect} nam parameter type from buf * to sockaddr *.
final commit for parameter type changes to protocol user requests
* bump kernel version to 7.99.15 for parameter type changes to pr_{send,connect}
|
1.220 |
| 26-Apr-2015 |
rtr | remove pr_generic from struct pr_usrreqs and all implementations of pr_generic in protocols.
bump to 7.99.13
approved by rmind@
|
1.219 |
| 24-Apr-2015 |
rtr | make accept, getsockname and getpeername syscalls use sockaddr_big and modify pr_{accept,sockname,peername} nam parameter type from mbuf * to sockaddr *.
* retained use of mbuftypes[MT_SONAME] for now. * bump to netbsd version 7.99.12 for parameter type change.
patch posted to tech-net@ 2015/04/19
|
1.218 |
| 03-Apr-2015 |
rtr | * change pr_bind to accept struct sockaddr * instead of struct mbuf * * update protocol bind implementations to use/expect sockaddr * instead of mbuf * * introduce sockaddr_big struct for storage of addr data passed via sys_bind; sockaddr_big is of sufficient size and alignment to accommodate all addr data sizes received. * modify sys_bind to allocate sockaddr_big instead of using an mbuf. * bump kernel version to 7.99.9 for change to pr_bind() parameter type.
Patch posted to tech-net@ http://mail-index.netbsd.org/tech-net/2015/03/15/msg005004.html
The choice to use a new structure sockaddr_big has been retained since changing sockaddr_storage size would lead to unnecessary ABI change. The use of the new structure does not preclude future work that increases the size of sockaddr_storage and at that time sockaddr_big may be trivially replaced.
Tested by mrg@ and myself, discussed with rmind@, posted to tech-net@
|
1.217 |
| 09-Aug-2014 |
rtr | branches: 1.217.2; 1.217.4; 1.217.6; 1.217.10; split PRU_CONNECT2 & PRU_PURGEIF function out of pr_generic() usrreq switches and put into separate functions
- always KASSERT(solocked(so)) even if not implemented (for PRU_CONNECT2 only)
- replace calls to pr_generic() with req = PRU_CONNECT2 with calls to pr_connect2()
- replace calls to pr_generic() with req = PRU_PURGEIF with calls to pr_purgeif()
put common code from unp_connect2() (used by unp_connect() into unp_connect1() and call out to it when needed
patch only briefly reviewed by rmind@
|
1.216 |
| 08-Aug-2014 |
rtr | split PRU_RCVD function out of pr_generic() usrreq switches and put into separate functions
- always KASSERT(solocked(so)) even if not implemented
- replace calls to pr_generic() with req = PRU_RCVD with calls to pr_rcvd()
|
1.215 |
| 05-Aug-2014 |
rtr | split PRU_SEND function out of pr_generic() usrreq switches and put into separate functions
xxx_send(struct socket *, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *)
- always KASSERT(solocked(so)) even if not implemented
- replace calls to pr_generic() with req = PRU_SEND with calls to pr_send()
rename existing functions that operate on PCB for consistency (and to free up their names for xxx_send() PRUs
- l2cap_send() -> l2cap_send_pcb() - sco_send() -> sco_send_pcb() - rfcomm_send() -> rfcomm_send_pcb()
patch reviewed by rmind
|
1.214 |
| 05-Aug-2014 |
rtr | revert the removal of struct lwp * parameter from bind, listen and connect user requests.
this should resolve the issue relating to nfs client hangs presented recently by wiz on current-users@
|
1.213 |
| 02-Aug-2014 |
rtr | restore splsoftnet() in various usrreqs that were removed during the PRU splits. we will properly review removal after the PRU split work is complete.
|
1.212 |
| 31-Jul-2014 |
rtr | split PRU_DISCONNECT, PRU_SHUTDOWN and PRU_ABORT function out of pr_generic() usrreq switches and put into separate functions
xxx_disconnect(struct socket *) xxx_shutdown(struct socket *) xxx_abort(struct socket *)
- always KASSERT(solocked(so)) even if not implemented - replace calls to pr_generic() with req = PRU_{DISCONNECT,SHUTDOWN,ABORT} with calls to pr_{disconnect,shutdown,abort}() respectively
rename existing internal functions used to implement above functionality to permit use of the names for xxx_{disconnect,shutdown,abort}().
- {l2cap,sco,rfcomm}_disconnect() -> {l2cap,sco,rfcomm}_disconnect_pcb() - {unp,rip,tcp}_disconnect() -> {unp,rip,tcp}_disconnect1() - unp_shutdown() -> unp_shutdown1()
patch reviewed by rmind
|
1.211 |
| 30-Jul-2014 |
rtr | split PRU_CONNECT function out of pr_generic() usrreq switches and put into seaparate functions
xxx_listen(struct socket *, struct mbuf *)
- always KASSERT(solocked(so)) and KASSERT(nam != NULL) - replace calls to pr_generic() with req = PRU_CONNECT with pr_connect() - rename existin {l2cap,sco,rfcomm}_connect() to {l2cap,sco,rfcomm}_connect_pcb() respectively to permit naming consistency with other protocols functions. - drop struct lwp * parameter from unp_connect() and at_pcbconnect() and use curlwp instead where appropriate.
patch reviewed by rmind
|
1.210 |
| 24-Jul-2014 |
rtr | split PRU_BIND and PRU_LISTEN function out of pr_generic() usrreq switches and put into separate functions xxx_bind(struct socket *, struct mbuf *) xxx_listen(struct socket *)
- always KASSERT(solocked(so)) even if not implemented
- replace calls to pr_generic() with req = PRU_BIND with call to pr_bind()
- replace calls to pr_generic() with req = PRU_LISTEN with call to pr_listen()
- drop struct lwp * parameter from at_pcbsetaddr(), in_pcbbind() and unp_bind() and always use curlwp.
rename existing functions that operate on PCB for consistency (and to free up their names for xxx_{bind,listen}() PRUs
- l2cap_{bind,listen}() -> l2cap_{bind,listen}_pcb() - sco_{bind,listen}() -> sco_{bind,listen}_pcb() - rfcomm_{bind,listen}() -> rfcomm_{bind,listen}_pcb()
patch reviewed by rmind
welcome to netbsd 6.99.48
|
1.209 |
| 23-Jul-2014 |
rtr | split PRU_SENDOOB and PRU_RCVOOB function out of pr_generic() usrreq switches and put into separate functions xxx_sendoob(struct socket *, struct mbuf *, struct mbuf *) xxx_recvoob(struct socket *, struct mbuf *, int)
- always KASSERT(solocked(so)) even if request is not implemented
- replace calls to pr_generic() with req = PRU_{SEND,RCV}OOB with calls to pr_{send,recv}oob() respectively.
there is still some tweaking of m_freem(m) and m_freem(control) to come for consistency. not performed with this commit for clarity.
reviewed by rmind
|
1.208 |
| 09-Jul-2014 |
rtr | * 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
|
1.207 |
| 09-Jul-2014 |
rtr | * split PRU_PEERADDR and PRU_SOCKADDR function out of pr_generic() usrreq switches and put into separate functions xxx_{peer,sock}addr(struct socket *, struct mbuf *).
- KASSERT(solocked(so)) always in new functions even if request is not implemented
- KASSERT(pcb != NULL) and KASSERT(nam) if the request is implemented and not for tcp.
* for tcp roll #ifdef KPROF and #ifdef DEBUG code from tcp_usrreq() into easier to cut & paste functions tcp_debug_capture() and tcp_debug_trace()
- functions provided by rmind - remaining use of PRU_{PEER,SOCK}ADDR #define to be removed in a future commit.
* rename netbt functions to permit consistency of pru function names (as has been done with other requests already split out).
- l2cap_{peer,sock}addr() -> l2cap_{peer,sock}_addr_pcb() - rfcomm_{peer,sock}addr() -> rfcomm_{peer,sock}_addr_pcb() - sco_{peer,sock}addr() -> sco_{peer,sock}_addr_pcb()
* split/refactor do_sys_getsockname(lwp, fd, which, nam) into two functions do_sys_get{peer,sock}name(fd, nam).
- move PRU_PEERADDR handling into do_sys_getpeername() from do_sys_getsockname() - have svr4_stream directly call do_sys_get{sock,peer}name() respectively instead of providing `which' & fix a DPRINTF string that incorrectly wrote "getpeername" when it meant "getsockname" - fix sys_getpeername() and sys_getsockname() to call do_sys_get{sock,peer}name() without `which' and `lwp' & adjust comments - bump kernel version for removal of lwp & which parameters from do_sys_getsockname()
note: future cleanup to remove struct mbuf * abuse in xxx_{peer,sock}name() still to come, not done in this commit since it is easier to do post split.
patch reviewed by rmind
welcome to 6.99.47
|
1.206 |
| 07-Jul-2014 |
rtr | * sprinkle KASSERT(solocked(so)); in all pr_stat() functions. * fix remaining inconsistent struct socket parameter names.
|
1.205 |
| 07-Jul-2014 |
rtr | backout change that made pr_stat return EOPNOTSUPP for protocols that were not filling in struct stat.
decision made after further discussion with rmind and investigation of how other operating systems behave. soo_stat() is doing just enough to be able to call what gets returned valid and thus justifys a return of success.
additional review will be done to determine of the pr_stat functions that were already returning EOPNOTSUPP can be considered successful with what soo_stat() is doing.
|
1.204 |
| 07-Jul-2014 |
rtr | * have pr_stat return EOPNOTSUPP consistently for all protocols that do not fill in struct stat instead of returning success.
* in pr_stat remove all checks for non-NULL so->so_pcb except where the pcb is actually used (i.e. cases where we don't return EOPNOTSUPP).
proposed on tech-net@
|
1.203 |
| 06-Jul-2014 |
rtr | * split PRU_SENSE functionality out of xxx_usrreq() switches and place into separate xxx_stat(struct socket *, struct stat *) functions. * replace calls using pr_generic with req == PRU_SENSE with pr_stat().
further change will follow that cleans up the pattern used to extract the pcb and test for its presence.
reviewed by rmind
|
1.202 |
| 01-Jul-2014 |
rtr | fix parameter types in pr_ioctl, called xx_control() functions and remove abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command) param3 changed to void * type and uses parameter name 'data' param4 changed to struct ifnet * and uses parameter name 'ifp' param5 has been removed (formerly struct lwp *) and uses of 'l' have been replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called code has had (now unnecessary) casts to u_long, void * and struct ifnet * respectively removed.
reviewed by rmind@
|
1.201 |
| 23-Jun-2014 |
rtr | where appropriate rename xxx_ioctl() struct mbuf * parameters from `control' to `ifp' after split from xxx_usrreq().
sys_socket.c fix wrapping of arguments to be consistent with other function calls in the file after replacing pr_usrreq() call with pr_ioctl() which required one less argument.
link_proto.c fix indentation of parameters in link_ioctl() prototype to be consistent with the rest of the file.
discussed with rmind@
|
1.200 |
| 22-Jun-2014 |
rtr | * split PRU_CONTROL functionality out of xxx_userreq() switches and place into separate xxx_ioctl() functions. * place KASSERT(req != PRU_CONTROL) inside xxx_userreq() as it is now inappropriate for req = PRU_CONTROL in xxx_userreq(). * replace calls to pr_generic() with req = PRU_CONTROL with pr_ioctl(). * remove & fixup references to PRU_CONTROL xxx_userreq() function comments. * fix various comments references for xxx_userreq() that mentioned PRU_CONTROL as xxx_userreq() no longer handles the request.
a further change will follow to fix parameter and naming inconsistencies retained from original code.
Reviewed by rmind@
|
1.199 |
| 30-May-2014 |
christos | Introduce 2 new variables: ipsec_enabled and ipsec_used. Ipsec enabled is controlled by sysctl and determines if is allowed. ipsec_used is set automatically based on ipsec being enabled, and rules existing.
|
1.198 |
| 22-May-2014 |
rmind | Move udp6_input(), udp6_sendup(), udp6_realinput() and udp6_input_checksum() from udp_usrreq.c to udp6_usrreq.c where they belong. No functional change.
|
1.197 |
| 20-May-2014 |
rmind | Adjust PR_WRAP_USRREQS() to include the attach/detach functions. We still need the kernel-lock for some corner cases.
|
1.196 |
| 19-May-2014 |
rmind | - Split off PRU_ATTACH and PRU_DETACH logic into separate functions. - Replace malloc with kmem and eliminate M_PCB while here. - Sprinkle more asserts.
|
1.195 |
| 18-May-2014 |
rmind | Add struct pr_usrreqs with a pr_generic function and prepare for the dismantling of pr_usrreq in the protocols; no functional change intended. PRU_ATTACH/PRU_DETACH changes will follow soon.
Bump for struct protosw. Welcome to 6.99.62!
|
1.194 |
| 25-Feb-2014 |
pooka | branches: 1.194.2; Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
1.193 |
| 04-Jan-2014 |
pooka | IPv6 UDP uses the IPv4 pcb tables, and therefore the stats, so need to create the percpu UDPv4 counters even in a v6-only system.
|
1.192 |
| 02-Jan-2014 |
pooka | Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
1.191 |
| 23-Nov-2013 |
christos | convert from CIRCLEQ to TAILQ.
|
1.190 |
| 05-Jun-2013 |
christos | branches: 1.190.2; IPSEC has not come in two speeds for a long time now (IPSEC == kame, FAST_IPSEC). Make everything refer to IPSEC to avoid confusion.
|
1.189 |
| 05-Jun-2013 |
christos | conditionalize the net traversal code on FAST_IPSEC to make rump build.
|
1.188 |
| 04-Jun-2013 |
christos | PR/47886: Dr. Wolfgang Stukenbrock: IPSEC_NAT_T enabled kernels may access outdated pointers and pass ESP data to UPD-sockets. While here, simplify the code and remove the IPSEC_NAT_T option; always compile nat-traversal in so that it does not bitrot.
|
1.187 |
| 22-Jun-2012 |
christos | branches: 1.187.2; PR/46602: Move the rfc6056 port randomization to the IP layer.
|
1.186 |
| 22-Mar-2012 |
drochner | remove KAME IPSEC, replaced by FAST_IPSEC
|
1.185 |
| 09-Jan-2012 |
liamjfoy | minor typo fix
|
1.184 |
| 19-Dec-2011 |
drochner | rename the IPSEC in-kernel CPP variable and config(8) option to KAME_IPSEC, and make IPSEC define it so that existing kernel config files work as before Now the default can be easily be changed to FAST_IPSEC just by setting the IPSEC alias to FAST_IPSEC.
|
1.183 |
| 24-Sep-2011 |
christos | branches: 1.183.2; 1.183.6; Add inet4 part of the rfc6056 code contributed by Vlad Balan as part of Google SoC-2011
|
1.182 |
| 17-Jul-2011 |
joerg | Retire varargs.h support. Move machine/stdarg.h logic into MI sys/stdarg.h and expect compiler to provide proper builtins, defaulting to the GCC interface. lint still has a special fallback. Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and derive va_list as required by standards.
|
1.181 |
| 03-Jul-2011 |
mrg | avoid an uninitialised variable warning. this one seems a false positive, but since it's for some hacky workaround code anyway...
|
1.180 |
| 03-May-2011 |
dyoung | Reduces the resources demanded by TCP sessions in TIME_WAIT-state using methods called Vestigial Time-Wait (VTW) and Maximum Segment Lifetime Truncation (MSLT).
MSLT and VTW were contributed by Coyote Point Systems, Inc.
Even after a TCP session enters the TIME_WAIT state, its corresponding socket and protocol control blocks (PCBs) stick around until the TCP Maximum Segment Lifetime (MSL) expires. On a host whose workload necessarily creates and closes down many TCP sockets, the sockets & PCBs for TCP sessions in TIME_WAIT state amount to many megabytes of dead weight in RAM.
Maximum Segment Lifetimes Truncation (MSLT) assigns each TCP session to a class based on the nearness of the peer. Corresponding to each class is an MSL, and a session uses the MSL of its class. The classes are loopback (local host equals remote host), local (local host and remote host are on the same link/subnet), and remote (local host and remote host communicate via one or more gateways). Classes corresponding to nearer peers have lower MSLs by default: 2 seconds for loopback, 10 seconds for local, 60 seconds for remote. Loopback and local sessions expire more quickly when MSLT is used.
Vestigial Time-Wait (VTW) replaces a TIME_WAIT session's PCB/socket dead weight with a compact representation of the session, called a "vestigial PCB". VTW data structures are designed to be very fast and memory-efficient: for fast insertion and lookup of vestigial PCBs, the PCBs are stored in a hash table that is designed to minimize the number of cacheline visits per lookup/insertion. The memory both for vestigial PCBs and for elements of the PCB hashtable come from fixed-size pools, and linked data structures exploit this to conserve memory by representing references with a narrow index/offset from the start of a pool instead of a pointer. When space for new vestigial PCBs runs out, VTW makes room by discarding old vestigial PCBs, oldest first. VTW cooperates with MSLT.
It may help to think of VTW as a "FIN cache" by analogy to the SYN cache.
A 2.8-GHz Pentium 4 running a test workload that creates TIME_WAIT sessions as fast as it can is approximately 17% idle when VTW is active versus 0% idle when VTW is inactive. It has 103 megabytes more free RAM when VTW is active (approximately 64k vestigial PCBs are created) than when it is inactive.
|
1.179 |
| 16-Sep-2009 |
pooka | branches: 1.179.4; 1.179.6; Replace a large number of link set based sysctl node creations with calls from subsystem constructors. Benefits both future kernel modules and rump.
no change to sysctl nodes on i386/MONOLITHIC & build tested i386/ALL
|
1.178 |
| 19-Jul-2009 |
minskim | Enable IP_MINTTL option for SOCK_DGRAM sockets.
|
1.177 |
| 18-Apr-2009 |
tsutsui | Remove extra whitespace added by a stupid tool. XXX: more in src/sys/arch
|
1.176 |
| 18-Mar-2009 |
cegger | bcopy -> memcpy
|
1.175 |
| 18-Mar-2009 |
cegger | bzero -> memset
|
1.174 |
| 19-Jan-2009 |
christos | branches: 1.174.2; Provide compatibility to the old timeval SCM_TIMESTAMP messages.
|
1.173 |
| 06-Aug-2008 |
plunky | branches: 1.173.2; Convert socket options code to use a sockopt structure instead of laying everything into an mbuf.
approved by core
|
1.172 |
| 04-May-2008 |
thorpej | branches: 1.172.2; 1.172.6; Simplify the interface to netstat_sysctl() and allocate space for the collated counters using kmem_alloc().
PR kern/38577
|
1.171 |
| 26-Apr-2008 |
yamt | branches: 1.171.2; udp_init: don't forget to allocate udp6stat_percpu.
|
1.170 |
| 24-Apr-2008 |
ad | Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
1.169 |
| 23-Apr-2008 |
thorpej | Make IPSEC and FAST_IPSEC stats per-cpu. Use <net/net_stats.h> and netstat_sysctl().
|
1.168 |
| 15-Apr-2008 |
thorpej | branches: 1.168.2; Make udp6 stats per-cpu.
|
1.167 |
| 15-Apr-2008 |
thorpej | Make ip6 and icmp6 stats per-cpu.
|
1.166 |
| 12-Apr-2008 |
thorpej | Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
1.165 |
| 08-Apr-2008 |
thorpej | Change IPv6 stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old ip6stat structure; old netstat binaries will continue to work properly.
|
1.164 |
| 06-Apr-2008 |
thorpej | Change UDP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old icmpstat structure; old netstat binaries will continue to work properly.
|
1.163 |
| 27-Nov-2007 |
christos | branches: 1.163.14; require that the options argument is the right size, not that it is greater or equal to the requested size. Suggested by Matt Thomas.
|
1.162 |
| 02-Sep-2007 |
dyoung | branches: 1.162.6; m_copym(..., 0, M_COPYALL, ...) -> m_copypacket(..., ...).
|
1.161 |
| 02-Sep-2007 |
dyoung | m_copy() was deprecated, apparently, long ago. m_copy(...) -> m_copym(..., M_DONTWAIT).
|
1.160 |
| 27-Jun-2007 |
degroote | branches: 1.160.2; 1.160.6; 1.160.8; Add support for options IPSEC_NAT_T (RFC 3947 and 3948) for fast_ipsec(4).
No objection on tech-net@
|
1.159 |
| 12-May-2007 |
dyoung | Use sockaddr_in_init().
|
1.158 |
| 04-Mar-2007 |
christos | branches: 1.158.2; 1.158.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.157 |
| 17-Feb-2007 |
dyoung | KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
1.156 |
| 14-Nov-2006 |
rpaulo | branches: 1.156.4; Remove ifndef COMPAT_42. No objections in tech-net.
|
1.155 |
| 10-Nov-2006 |
yamt | udp_ctloutput: plug a memory leak.
|
1.154 |
| 10-Nov-2006 |
yamt | remove some __unused in function parameters.
|
1.153 |
| 10-Nov-2006 |
yamt | udp_ctloutput: remove unnecessary goto and break.
|
1.152 |
| 10-Nov-2006 |
yamt | udp_ctloutput: ansify.
|
1.151 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.150 |
| 10-Oct-2006 |
dogcow | change the MOWNER_INIT define to take two args; fix extant struct mowner decls to use it. Makes options MBUFTRACE compile again and not whinge about missing structure declarations. (Also makes initialization consistent.)
|
1.149 |
| 05-Oct-2006 |
tls | Protect calls to pool_put/pool_get that may occur in interrupt context with spl used to protect other allocations and frees, or datastructure element insertion and removal, in adjacent code.
It is almost unquestionably the case that some of the spl()/splx() calls added here are superfluous, but it really seems wrong to see:
s=splfoo(); /* frob data structure */ splx(s); pool_put(x);
and if we think we need to protect the first operation, then it is hard to see why we should not think we need to protect the next. "Better safe than sorry".
It is also almost unquestionably the case that I missed some pool gets/puts from interrupt context with my strategy for finding these calls; use of PR_NOWAIT is a strong hint that a pool may be used from interrupt context but many callers in the kernel pass a "can wait/can't wait" flag down such that my searches might not have found them. One notable area that needs to be looked at is pf.
See also:
http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.html http://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html
|
1.148 |
| 23-Jul-2006 |
ad | branches: 1.148.4; 1.148.6; Use the LWP cached credentials where sane.
|
1.147 |
| 23-Feb-2006 |
christos | branches: 1.147.2; Handle IPSEC_NAT_T in the FAST_IPSEC case. XXX: need to fix the FAST_IPSEC code now.
|
1.146 |
| 21-Jan-2006 |
rpaulo | branches: 1.146.2; 1.146.4; Better support of IPv6 scoped addresses.
- most of the kernel code will not care about the actual encoding of scope zone IDs and won't touch "s6_addr16[1]" directly. - similarly, most of the kernel code will not care about link-local scoped addresses as a special case. - scope boundary check will be stricter. For example, the current *BSD code allows a packet with src=::1 and dst=(some global IPv6 address) to be sent outside of the node, if the application do: s = socket(AF_INET6); bind(s, "::1"); sendto(s, some_global_IPv6_addr); This is clearly wrong, since ::1 is only meaningful within a single node, but the current implementation of the *BSD kernel cannot reject this attempt. - and, while there, don't try to remove the ff02::/32 interface route entry in in6_ifdetach() as it's already gone.
This also includes some level of support for the standard source address selection algorithm defined in RFC3484, which will be completed on in the future.
From the KAME project via JINMEI Tatuya. Approved by core@.
|
1.145 |
| 11-Dec-2005 |
christos | branches: 1.145.2; merge ktrace-lwp.
|
1.144 |
| 09-Dec-2005 |
manu | Fix a bug in ESP over UDP: because udp4_espinudp() called m_pullup, it could modify the struct mbuf and calling functions (udp_input() and udp4_realinput()) would have used a garbled local copy of the pointer.
The fix is not perfect. udp4_espinudp() should use m_pulldown()...
|
1.143 |
| 15-Nov-2005 |
dsl | Pass the current process structure to in_pcbconnect() so that it can pass it to in_pcbbind() so that can allocate a low numbered port if setsockopt() has been used to set IP_PORTRANGE to IP_PORTRANGE_LOW. While there, fail in_pcbconnect() if the in_pcbbind() fails - rather than sending the request out from a port of zero. This has been largely broken since the socket option was added in 1998.
|
1.142 |
| 03-Sep-2005 |
kleink | branches: 1.142.6; udp4_espinudp(): don't assume that the Non-ESP marker (or UDP payload) is aligned on a 64-bit boundary.
|
1.141 |
| 10-Aug-2005 |
yamt | move {tcp,udp}_do_loopback_cksum back to tcp/udp so that they can be referenced by ipv6.
|
1.140 |
| 10-Aug-2005 |
yamt | device independent part of ipv6 rx checksum offloading.
|
1.139 |
| 05-Aug-2005 |
elad | Add sysctls for IP, ICMP, TCP, and UDP statistics.
|
1.138 |
| 29-Apr-2005 |
manu | branches: 1.138.2; Fix memory leak
|
1.137 |
| 25-Apr-2005 |
manu | Don't sleep when handling ESP over UDP packets.
|
1.136 |
| 23-Apr-2005 |
manu | Enhance IPSEC_NAT_T so that it can work with multiple machines behind the same NAT.
|
1.135 |
| 18-Apr-2005 |
yamt | fix problems related to loopback interface checksum omission. PR/29971.
- for ipv4, defer decision to ip layer as h/w checksum offloading does so that it can check the actual interface the packet is going to. - for ipv6, disable it. (maybe will be revisited when it implements h/w checksum offloading.)
ok'ed by Jason Thorpe.
|
1.134 |
| 11-Mar-2005 |
atatat | branches: 1.134.2; Revert the change that made kern.file2 and net.*.*.pcblist into nodes instead of structs. It had other deleterious side-effects that are rather nasty. Another solution must be found.
|
1.133 |
| 10-Mar-2005 |
atatat | Change types of kern.file2 and net.*.*.pcblist to NODE
|
1.132 |
| 09-Mar-2005 |
atatat | Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
1.131 |
| 26-Feb-2005 |
perry | nuke trailing whitespace
|
1.130 |
| 12-Feb-2005 |
manu | Add support for IPsec Network Address Translator traversal (NAT-T), as described by RFC 3947 and 3948.
|
1.129 |
| 21-Dec-2004 |
yamt | branches: 1.129.2; 1.129.4; factor out receive side tcp/udp checksum handling code so that they can be used by eg. packet filters.
reviewed by Christos Zoulas on tech-net@. (slightly tweaked since then to make tcp and udp similar.)
|
1.128 |
| 19-Dec-2004 |
christos | yamt's changes seem to fix all the checksumming issues. Turn the loopback checksums back off so we can make sure that everything works.
|
1.127 |
| 18-Dec-2004 |
yamt | udp6_input: correct loopback test.
|
1.126 |
| 17-Dec-2004 |
christos | Turn checksumming on loopback back on until we fix the bugs in it. Connect over tcp on the loopback is broken:
4729 amq 0.000007 CALL connect(4,0x804f2a0,0x1c) 4729 amq 75.007420 RET connect -1 errno 60 Connection timed out
|
1.125 |
| 15-Dec-2004 |
thorpej | Don't perform checksums on loopback interfaces. They can be reenabled with the net.inet.*.do_loopback_cksum sysctl.
Approved by: groo
|
1.124 |
| 03-Sep-2004 |
darrenr | add a per-socket counter for dropped UDP packets when the internal buffers are full.
|
1.123 |
| 02-Jul-2004 |
heas | Adjust description for net.inet.udp.checksum; it does not controll checking, only computing.
|
1.122 |
| 25-May-2004 |
atatat | Sysctl descriptions under net subtree (net.key not done)
|
1.121 |
| 07-May-2004 |
jonathan | Redo net.inet.* sysctl subtree for fast-ipsec from scratch. Attach FAST-IPSEC statistics with 64-bit counters to new sysctl MIB. Rework netstat to show FAST_IPSEC statistics, via sysctl, for netstat -p ipsec.
New kernel files: sys/netipsec/Makefile (new file; install *_var.h includes) sys/netipsec/ipsec_var.h (new 64-bit mib counter struct)
Changed kernel files: sys/Makefile (recurse into sys/netipsec/) sys/netinet/in.h (fake IP_PROTO name for fast_ipsec sysctl subtree.) sys/netipsec/ipsec.h (minimal userspace inclusion) sys/netipsec/ipsec_osdep.h (minimal userspace inclusion) sys/netipsec/ipsec_netbsd.c (redo sysctl subtree from scratch) sys/netipsec/key*.c (fix broken net.key subtree)
sys/netipsec/ah_var.h (increase all counters to 64 bits) sys/netipsec/esp_var.h (increase all counters to 64 bits) sys/netipsec/ipip_var.h (increase all counters to 64 bits) sys/netipsec/ipcomp_var.h (increase all counters to 64 bits)
sys/netipsec/ipsec.c (add #include netipsec/ipsec_var.h) sys/netipsec/ipsec_mbuf.c (add #include netipsec/ipsec_var.h) sys/netipsec/ipsec_output.c (add #include netipsec/ipsec_var.h)
sys/netinet/raw_ip.c (add #include netipsec/ipsec_var.h) sys/netinet/tcp_input.c (add #include netipsec/ipsec_var.h) sys/netinet/udp_usrreq.c (add #include netipsec/ipsec_var.h)
Changes to usr.bin/netstat to print the new fast-ipsec sysctl tree for "netstat -s -p ipsec":
New file: usr.bin/netstat/fast_ipsec.c (print fast-ipsec counters)
Changed files: usr.bin/netstat/Makefile (add fast_ipsec.c) usr.bin/netstat/netstat.h (declarations for fast_ipsec.c) usr.bin/netstat/main.c (call KAME-vs-fast-ipsec dispatcher)
|
1.120 |
| 01-May-2004 |
matt | Use EVCNT_ATTACH_STATIC{,2}
|
1.119 |
| 18-Apr-2004 |
matt | ANSI'fy and de __P
|
1.118 |
| 31-Mar-2004 |
itojun | clean previous commit (uh_sum != 0 check in IPv6)
|
1.117 |
| 31-Mar-2004 |
itojun | drop packet if IPv6 udp packet does not have checksum (checksum is mandatory in IPv6).
|
1.116 |
| 24-Mar-2004 |
atatat | branches: 1.116.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
1.115 |
| 10-Mar-2004 |
drochner | fix tcp/udp checksum test in the M_CSUM_NO_PSEUDOHDR case (this can never have worked) now I can use a "bge" gigabit interface with hw checksumming ttcp-t: 2147483648 bytes in 18.31 real seconds = 114527.11 KB/sec +++ woow!
|
1.114 |
| 04-Dec-2003 |
atatat | Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
1.113 |
| 23-Oct-2003 |
mycroft | Remove all the code to maintain ia_inpcbs. This information was only used to close sockets on address changes, which was deemed to be a bad idea and was summarily removed, so there is no point in wasting effort on maintaining it any more.
|
1.112 |
| 18-Oct-2003 |
enami | Fix indent.
|
1.111 |
| 25-Sep-2003 |
mycroft | Fix glaring errors in recent changes.
|
1.110 |
| 12-Sep-2003 |
itojun | send icmp admin prohibit if socket policy mismatches.
|
1.109 |
| 04-Sep-2003 |
itojun | revamp inpcb/in6pcb so that they are more aligned with each other. in6pcb lookup now uses hash(9).
|
1.108 |
| 22-Aug-2003 |
itojun | remove ipsec_set/getsocket. now we explicitly pass socket * to ip{,6}_output.
|
1.107 |
| 22-Aug-2003 |
itojun | change the additional arg to be passed to ip{,6}_output to struct socket *.
this fixes KAME policy lookup which was broken by the previous commit.
|
1.106 |
| 21-Aug-2003 |
jonathan | Honour the M_CSUM_NO_PSEUDOHDR, if set on inbound TCP and UDP packets. Tested against bcm5700 with patched if_bge.c.
|
1.105 |
| 15-Aug-2003 |
jonathan | (fast-ipsec): Add hooks to pass IPv4 IPsec traffic into fast-ipsec, if configured with ``options FAST_IPSEC''. Kernels with KAME IPsec or with no IPsec should work as before.
All calls to ip_output() now always pass an additional compulsory argument: the inpcb associated with the packet being sent, or 0 if no inpcb is available.
Fast-ipsec tested with ICMP or UDP over ESP. TCP doesn't work, yet.
|
1.104 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.103 |
| 29-Jun-2003 |
fvdl | branches: 1.103.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
1.102 |
| 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
1.101 |
| 23-Jun-2003 |
martin | Make sure to include opt_foo.h if a defflag option FOO is used.
|
1.100 |
| 15-Jun-2003 |
matt | Change the way multicasts are kept. They now use a hash table in the same manner as the ifaddr hash table. By doing this, the mkludge code can go away. At the same time, keep track of what pcbs are using what ifaddr and when an address is deleted from an interface, notify/abort all sockets that have that address as a source. Switch IGMP and multicasts to use pools for allocation. Fix a number of potential problems in the igmp code where allocation failures could cause a trap/panic.
|
1.99 |
| 14-May-2003 |
itojun | always use PULLDOWN_TEST codepath.
|
1.98 |
| 26-Feb-2003 |
matt | Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
1.97 |
| 20-Jan-2003 |
simonb | Remove variables that are only assigned too but not referenced.
|
1.96 |
| 14-Aug-2002 |
itojun | avoid swapping endian of ip_len and ip_off on mbuf, to meet with M_LEADINGSPACE optimization made last year. should solve PR 17867 and 10195.
IP_HDRINCL behavior of raw ip socket is kept unchanged. we may want to provide IP_HDRINCL variant that does not swap endian.
|
1.95 |
| 30-Jun-2002 |
thorpej | Changes to allow the IPv4 and IPv6 layers to align headers themseves, as necessary: * Implement a new mbuf utility routine, m_copyup(), is is like m_pullup(), except that it always prepends and copies, rather than only doing so if the desired length is larger than m->m_len. m_copyup() also allows an offset into the destination mbuf, which allows space for packet headers, in the forwarding case. * Add *_HDR_ALIGNED_P() macros for IP, IPv6, ICMP, and IGMP. These macros expand to 1 if __NO_STRICT_ALIGNMENT is defined, so that architectures which do not have strict alignment constraints don't pay for the test or visit the new align-if-needed path. * Use the new macros to check if a header needs to be aligned, or to assert that it already is, as appropriate.
Note: This code is still somewhat experimental. However, the new code path won't be visited if individual device drivers continue to guarantee that packets are delivered to layer 3 already properly aligned (which are rules that are already in use).
|
1.94 |
| 09-Jun-2002 |
itojun | whitespace
|
1.93 |
| 12-May-2002 |
matt | branches: 1.93.2; 1.93.4; Eliminate commons.
|
1.92 |
| 21-Dec-2001 |
itojun | comment and whitespace. sync with kame
|
1.91 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.90 |
| 07-Nov-2001 |
itojun | do not grab packet to joined multicast group, when ip6_dst and in6p_laddr mismatches. it makes the behavior more closer to 4.4BSD IPv4 code. sync with kame
|
1.89 |
| 04-Nov-2001 |
matt | Convert netinet to not use the internal <sys/queue.h> field names but instead the access macros. Use the FOREACH macros where appropriate.
|
1.88 |
| 02-Nov-2001 |
itojun | array boundary overflow on the use of IPv4 mapped address. from simonb
|
1.87 |
| 29-Oct-2001 |
simonb | Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
1.86 |
| 24-Oct-2001 |
itojun | remove unused codepath (unifdef -UUDP6)
|
1.85 |
| 15-Oct-2001 |
itojun | branches: 1.85.2; implement IPV6_V6ONLY socket option from draft-ietf-ipngwg-rfc2553bis-03.txt. IPV6_BINDV6ONLY (netbsd only) is deprecated, but still work just like before.
|
1.84 |
| 17-Sep-2001 |
thorpej | Split the pre-computed ifnet checksum flags into Tx and Rx directions. Add capabilities bits that indicate an interface can only perform in-bound TCPv4 or UDPv4 checksums. There is at least one Gig-E chip for which this is true (Level One LXT-1001), and this is also the case for the Intel i82559 10/100 Ethernet chips.
|
1.83 |
| 25-Jul-2001 |
itojun | branches: 1.83.2; allocate ipsec policy buffer attached to pcb in in*_pcballoc, before giving anyone accesses to pcb (do not reveal an inconsistent ones). sync with kame
|
1.82 |
| 25-Jul-2001 |
itojun | g/c #if 0'ed fragment. sync with kame.
|
1.81 |
| 17-Jul-2001 |
enami | Add missing counting up of ``socket buffer is full'' counter when failed to sbappendaddr().
|
1.80 |
| 03-Jul-2001 |
itojun | branches: 1.80.2; call in{,6}_pcbpurgeif0() before in{,6}_purgeif().
|
1.79 |
| 27-Jun-2001 |
itojun | fix udp reception to sockets bound to linklocal address (like fe80::1%lo0). sync with kame
|
1.78 |
| 02-Jun-2001 |
thorpej | Implement support for IP/TCP/UDP checksum offloading provided by network interfaces. This works by pre-computing the pseudo-header checksum and caching it, delaying the actual checksum to ip_output() if the hardware cannot perform the sum for us. In-bound checksums can either be fully-checked by hardware, or summed up for final verification by software. This method was modeled after how this is done in FreeBSD, although the code is significantly different in most places.
We don't delay checksums for IPv6/TCP, but we do take advantage of the cached pseudo-header checksum.
Note: hardware-assisted checksumming defaults to "off". It is enabled with ifconfig(8). See the manual page for details.
Implement hardware-assisted checksumming on the DP83820 Gigabit Ethernet, 3c90xB/3c90xC 10/100 Ethernet, and Alteon Tigon/Tigon2 Gigabit Ethernet.
|
1.77 |
| 31-May-2001 |
soda | missing opt_inet.h
|
1.76 |
| 08-May-2001 |
itojun | correct faith prefix determination. use sys/netinet/if_faith.c:faithprefix() to determine. sync with kame. (without this change, non-faith socket may mistakenly accept for-faith traffic)
|
1.75 |
| 24-Jan-2001 |
itojun | branches: 1.75.2; - record IPsec packet history into m_aux structure. - let ipfilter look at wire-format packet only (not the decapsulated ones), so that VPN setting can work with NAT/ipfilter settings. sync with kame.
TODO: use header history for stricter inbound validation
|
1.74 |
| 04-Dec-2000 |
itojun | more on previous (udp4 multicast fix)
|
1.73 |
| 04-Dec-2000 |
itojun | fix multicast inbound packet processing. NetBSD PR 11629 From: salvet@ics.muni.cz
|
1.72 |
| 17-Oct-2000 |
itojun | be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
1.71 |
| 30-Aug-2000 |
itojun | minor typo. s/iPsec/IPsec/
|
1.70 |
| 24-Jul-2000 |
sommerfeld | Drop packet, increment udps_badlen if the udp header length field reports a size smaller than the udp header; defends against bogosity detected by Assar Westerlund.
This patch and the previous ip_icmp.c change were the joint work of assar, itojun, and myself.
|
1.69 |
| 07-Jul-2000 |
itojun | sync with kame. introduce in6_{recover,embed}scope, for in-kernel scoped-address manipulation. improve in6_pcbnotify.
|
1.68 |
| 06-Jul-2000 |
itojun | remove unnecessary #include <netkey/key_debug.h>. from kame.
|
1.67 |
| 28-Jun-2000 |
mrg | <vm/vm.h> -> <uvm/uvm_extern.h>
|
1.66 |
| 30-Mar-2000 |
augustss | branches: 1.66.4; Remove register declarations.
|
1.65 |
| 30-Mar-2000 |
simonb | Delete reduncdant decl of inetctlerrmap - it's in <netinet/in_var.h>.
|
1.64 |
| 22-Mar-2000 |
ws | Make IPKDB working again. Add support for i386 debugging and pci-based ne2000 boards.
|
1.63 |
| 01-Mar-2000 |
itojun | introduce m->m_pkthdr.aux to hold random data which needs to be passed between protocol handlers.
ipsec socket pointers, ipsec decryption/auth information, tunnel decapsulation information are in my mind - there can be several other usage. at this moment, we use this for ipsec socket pointer passing. this will avoid reuse of m->m_pkthdr.rcvif in ipsec code.
due to the change, MHLEN will be decreased by sizeof(void *) - for example, for i386, MHLEN was 100 bytes, but is now 96 bytes. we may want to increase MSIZE from 128 to 256 for some of our architectures.
take caution if you use it for keeping some data item for long period of time - use extra caution on M_PREPEND() or m_adj(), as they may result in loss of m->m_pkthdr.aux pointer (and mbuf leak).
this will bump kernel version.
(as discussed in tech-net, tested in kame tree)
|
1.62 |
| 29-Feb-2000 |
itojun | avoid copy-overwrite-copy on incoming udp4 checksum. use in4_cksum which takes care of pseudo header checksum without overwrites.
|
1.61 |
| 11-Feb-2000 |
itojun | don't increase both "no port on broadcast packet" and "no port" stat. increasing both of them will result in negative number on udp "delivered" stat on netstat(8), since netstat computes number of delivered packet by subtracting them from number of inbound packets.
|
1.60 |
| 02-Feb-2000 |
thorpej | PRU_PURGEADDR -> PRU_PURGEIF, per a discussion w/ itojun. In the IPv4 and IPv6 code, also use this to traverse PCB tables, looking for cached routes referencing the dying ifnet, forcing them to be refreshed.
|
1.59 |
| 01-Feb-2000 |
thorpej | First-draft if_detach() implementation, originally from Bill Studnemund, although this version has been changed somewhat: - reference counting on ifaddrs isn't as complete as Bill's original work was. This is hard to get right, and we should attack one protocol at a time. - This doesn't do reference counting or dynamic allocation of ifnets yet. - This version introduces a new PRU -- PRU_PURGEADDR, which is used to purge an ifaddr from a protocol. The old method Bill used didn't work on all protocols, and it only worked on some because it was Very Lucky.
This mostly works ... i.e. works for my USB Ethernet, except for a dangling ifaddr reference left by the IPv6 code; have not yet tracked this down.
|
1.58 |
| 31-Jan-2000 |
itojun | bring in latest KAME ipsec tree. - interop issues in ipcomp is fixed - padding type (after ESP) is configurable - key database memory management (need more fixes) - policy specification is revisited
XXX m->m_pkthdr.rcvif is still overloaded - hope to fix it soon
|
1.57 |
| 31-Jan-2000 |
itojun | destination port == 0 is illegal based on RFC768. (NetBSD PR: 9137 - I thought I committed this already but I wasn't)
|
1.56 |
| 06-Jan-2000 |
itojun | remove extra portability #ifdef (like #ifdef __FreeBSD__) in KAME IPv6/IPsec code, from netbsd-current repository. #ifdef'ed version is always available from ftp.kame.net.
XXX please do not make too many diff-unfriendly changes, we'll need to take bunch of diffs on upgrade...
|
1.55 |
| 06-Jan-2000 |
itojun | make IPV6_BINDV6ONLY setsockopt available. it controls behavior of AF_INET6 wildcard listening socket. heavily documented in ip6(4). net.inet6.ip6.bindv6only defines default value. default is 1.
"options INET6_BINDV6ONLY" removes any code fragment that supports IPV6_BINDV6ONLY == 0 case (not defopt'ed as use of this is rare).
|
1.54 |
| 22-Dec-1999 |
itojun | drop IPv6 packets with v4 mapped address on src/dst. they are illegal and may be used to fool IPv6 implementations (by using ::ffff:127.0.0.1 as source you may be able to pretend the packet is from local node)
|
1.53 |
| 13-Dec-1999 |
itojun | sync IPv6 part with latest KAME tree. IPsec part is left unmodified due to massive changes in KAME side. - IPv6 output goes through nd6_output - faith can capture IPv4 packets as well - you can run IPv4-to-IPv6 translator using heavily modified DNS servers - per-interface statistics (required for IPv6 MIB) - interface autoconfig is revisited - udp input handling has a big change for mapped address support. - introduce in4_cksum() for non-overwriting checksumming - introduce m_pulldown() - neighbor discovery cleanups/improvements - netinet/in.h strictly conforms to RFC2553 (no extra defs visible to userland) - IFA_STATS is fixed a bit (not tested) - and more more more.
TODO: - cleanup os-independency #ifdef - avoid rcvif dual use (for IPsec) to help ifdetach
(sorry for jumbo commit, I can't separate this any more...)
|
1.52 |
| 13-Sep-1999 |
itojun | branches: 1.52.2; 1.52.8; - Call in{,6}_pcbdetach if ipsec initialization is failed during PRU_ATTACH. This situation happens on severe memory shortage. We may need more improvements here and there. - Grab IEEE802 address from IFT_ETHER card, even if the card is inserted after bootup time. Is there any other card that can be inserted afterwards? pcmcia fddi card? :-P - RFC2373 u bit handling suggests that we SHOULD NOT copy interface id from ethernet card to pseudo interface, when ethernet card has IEEE802/EUI64 with u bit != 0 (this means that IEEE802/EUI64 is not universally unique). Do not use such address as, for example, interface id for gif interface. (I have such an ethernet card myself) This may change interface id for your gif interface. be careful upgrading rc files.
(sync with recent KAME)
|
1.51 |
| 09-Aug-1999 |
itojun | return with doing nothing from xx_ctlinput(), when sa->sa_family is not the expected one.
I see PRC_REDIRECT_HOST with sa->sa_family == AF_UNIX coming to {tcp,udp}_ctlinput() when I use dhclient, and I feel like adding more sanity checks, without logging - if we log it it is too noisy.
|
1.50 |
| 09-Jul-1999 |
thorpej | defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
1.49 |
| 06-Jul-1999 |
drochner | for incoming broadcasts, strip IP/UDP header correctly wrap a line
|
1.48 |
| 01-Jul-1999 |
itojun | IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
1.47 |
| 19-Jan-1999 |
mycroft | branches: 1.47.4; 1.47.6; Don't screw with ip_len; just subtract from it where we actually use the value.
|
1.46 |
| 19-Jan-1999 |
mycroft | Don't overwrite the checksum fields when checking them. There's no reason to do this, and it screws up ICMP replies. XXX The returned IP checksum and length are still wrong.
|
1.45 |
| 11-Jan-1999 |
thorpej | Fix byte order and ip_len inconsistencies in ICMP reply code. Also, fix some formatting and HTONS(foo) vs. foo = htons(foo) inconsistencies.
PR #6602, Darren Reed.
|
1.44 |
| 05-Jan-1998 |
thorpej | Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
1.43 |
| 12-Sep-1997 |
drochner | Adjust packet len in mbuf header for incoming broadcasts. Closes PR kern/4087 (by myself).
|
1.42 |
| 28-Jul-1997 |
thorpej | branches: 1.42.2; Make the following tunable via sysctl, inspired by BSD/OS: - udp_sendspace - udp_recvspace
|
1.41 |
| 24-Jun-1997 |
thorpej | Don't adjust ip->ip_len before calling icmp_error(); icmp_error() already does this. Per Stevens in TCP/IP Illustrated Vol. 2, p.774, submitted by Koji Imada <koji@math.human.nagoya-u.ac.jp>.
|
1.40 |
| 11-Jan-1997 |
thorpej | Implement the IP_RECVIF socket option: supply a datagram packet's incoming interface using a sockaddr_dl in a control mbuf.
Implement SO_TIMESTAMP for IP datagrams.
Move packet information option processing into a generic function so that they work with multicast UDP and raw IP as well as unicast UDP.
Contributed by Bill Fenner <fenner@parc.xerox.com>.
|
1.39 |
| 25-Oct-1996 |
thorpej | In udp_output(), sanity check the length of the packet to be transmitted. If it's larger than IP_MAXPACKET, return an error condition. Based on a patch from Bill Fenner <fenner@parc.xerox.com>
|
1.38 |
| 16-Oct-1996 |
ws | Rename recently checked in KGDB to IPKDB to resolve conflicts with older KGDB
|
1.37 |
| 30-Sep-1996 |
ws | Add (and change) machine independent files for KGDB support
|
1.36 |
| 16-Sep-1996 |
mycroft | Make sure the sin_zero fields are filled.
|
1.35 |
| 15-Sep-1996 |
mycroft | Hash unconnected PCBs.
|
1.34 |
| 09-Sep-1996 |
mycroft | Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
1.33 |
| 23-May-1996 |
mycroft | udp_output() doesn't actually take control data, so don't pretend it does.
|
1.32 |
| 23-May-1996 |
mycroft | Make sure the control mbufs are freed in all cases.
|
1.31 |
| 23-May-1996 |
mycroft | Fix a race condition in PRU_DISCONNECT. Rearrange the code to deal with unconnected sockets slightly. Other minor changes.
|
1.30 |
| 22-May-1996 |
mycroft | Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
1.29 |
| 20-May-1996 |
mrg | branches: 1.29.2; if the sender set a cksum, check it, regardless if we care to generate and send them ourselves. from rich stevens.
|
1.28 |
| 16-Mar-1996 |
christos | Fix printf format args.
|
1.27 |
| 13-Feb-1996 |
christos | netinet prototypes
|
1.26 |
| 31-Jan-1996 |
mycroft | Build a hash table of PCBs. Hash function needs tweaking.
|
1.25 |
| 21-Nov-1995 |
cgd | make netinet work on systems where pointers and longs are 64 bits (like the alpha). Biggest problem: IP headers were overlayed with structure which included pointers, and which therefore didn't overlay properly on 64-bit machines. Solution: instead of threading pointers through IP header overlays, add a "queue element" structure to do the threading, and point it at the ip headers.
|
1.24 |
| 12-Aug-1995 |
mycroft | branches: 1.24.2; splnet --> splsoftnet
|
1.23 |
| 26-Jun-1995 |
cgd | fix typo
|
1.22 |
| 18-Jun-1995 |
cgd | convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
1.21 |
| 12-Jun-1995 |
mycroft | Fix bogon in previous.
|
1.20 |
| 12-Jun-1995 |
mycroft | Change in_pcbnotify*() to take an errno value. Make inetctlerrmap[] an array on ints, not u_chars.
|
1.19 |
| 12-Jun-1995 |
mycroft | Oops. Make source quench work again.
|
1.18 |
| 12-Jun-1995 |
mycroft | Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
1.17 |
| 04-Jun-1995 |
mycroft | Clean up many more casts.
|
1.16 |
| 01-Jun-1995 |
mycroft | Avoid byte-swapping IP addresses at run time.
|
1.15 |
| 13-Apr-1995 |
cgd | be a bit more careful and explicit with types. (basically a large no-op.)
|
1.14 |
| 29-Jun-1994 |
cgd | New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
1.13 |
| 13-May-1994 |
mycroft | Update to 4.4-Lite networking code, with a few local changes.
|
1.12 |
| 10-Feb-1994 |
mycroft | Format police.
|
1.11 |
| 02-Feb-1994 |
hpeyerl | Multicast is no longer optional.
|
1.10 |
| 10-Jan-1994 |
mycroft | Should compile now with or without `options MULTICAST'.
|
1.9 |
| 08-Jan-1994 |
mycroft | More prototypes.
|
1.8 |
| 08-Jan-1994 |
mycroft | Slight rearrangement.
|
1.7 |
| 08-Jan-1994 |
mycroft | Prototypes.
|
1.6 |
| 08-Jan-1994 |
mycroft | Fix some inconsistent spacing; spaces at the end of lines, etc.
|
1.5 |
| 18-Dec-1993 |
mycroft | Canonicalize all #includes.
|
1.4 |
| 06-Dec-1993 |
hpeyerl | multicast support. >From Chris Maeda, cmaeda@cs.washington.edu These patches are derived from the IP Multicast patches for BSDI.
|
1.3 |
| 22-May-1993 |
cgd | branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
1.2 |
| 18-May-1993 |
cgd | make kernel select interface be one-stop shopping & clean it all up.
|
1.1 |
| 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
1.1.1.3 |
| 05-Jan-1998 |
thorpej | Import sys/netinet from 4.4BSD-Lite2 for reference purposes.
|
1.1.1.2 |
| 05-Jan-1998 |
thorpej | Import sys/netinet from 4.4BSD-Lite for reference purposes.
|
1.1.1.1 |
| 21-Mar-1993 |
cgd | initial import of 386bsd-0.1 sources
|
1.3.4.1 |
| 24-Sep-1993 |
mycroft | Make all files using spl*() #include cpu.h. Changes from trunk.
|
1.24.2.1 |
| 02-Feb-1996 |
mycroft | Bring in changes for mondo patch 2.
|
1.29.2.2 |
| 11-Dec-1996 |
mycroft | From trunk: Eliminate SS_PRIV; instead, pass down a proc pointer to the usrreq methods that need it. Fix numerous memory leaks and bogus return values.
|
1.29.2.1 |
| 10-Nov-1996 |
thorpej | Update from trunk: - Make ip_len and ip_off unsigned. - Make sure we don't accept or transmit packets larger than the maximim IP packet size. This fixes the so-called `death ping' bug.
Sum of work from Bill Fenner <fenner@parc.xerox.com>, Kevin Lahey <kml@nas.nasa.gov>, and myself.
Thanks to Curt Sampson, Jukka Marin, and Kevin Lahey for testing this under NetBSD 1.2
|
1.42.2.1 |
| 16-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.47.6.3 |
| 30-Nov-1999 |
itojun | bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch just for reference purposes. This commit includes 1.4 -> 1.4.1 sync for kame branch.
The branch does not compile at all (due to the lack of ALTQ and some other source code). Please do not try to modify the branch, this is just for referenre purposes.
synchronization to latest KAME will take place on HEAD branch soon.
|
1.47.6.2 |
| 06-Jul-1999 |
itojun | KAME/NetBSD 1.4, SNAP kit 1999/07/05. NOTE: this branch is just for reference purposes (i.e. for taking cvs diff). do not touch anything on the branch. actual work must be done on HEAD branch.
|
1.47.6.1 |
| 28-Jun-1999 |
itojun | KAME/NetBSD 1.4 SNAP kit, dated 19990628.
NOTE: this branch (kame) is used just for refernce. this may not compile due to multiple reasons.
|
1.47.4.2 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.47.4.1 |
| 01-Jul-1999 |
thorpej | Sync w/ -current.
|
1.52.8.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.52.2.3 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.52.2.2 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.52.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.66.4.6 |
| 12-Apr-2004 |
jmc | Pullup patch (requested by itojun in ticket #134)
Drop packet if IPv6 udp packet does not have checksum.
|
1.66.4.5 |
| 09-May-2001 |
he | Pull up revision 1.76 (requested by itojun): Correct faith prefix determintaion.
|
1.66.4.4 |
| 06-Apr-2001 |
he | Pull up revision 1.75 (requested by itojun): Record IPsec packet history in m_aux structure. Let ipfilter look at wire-format packet only (not the decapsulated ones), so that VPN setting can work with NAT/ipfilter settings.
|
1.66.4.3 |
| 15-Dec-2000 |
he | Pull up revision 1.74 (requested by hubertf): Fix multicast inbound packet processing. Fixes PR#11629. (Required continuation of previous pullup.)
|
1.66.4.2 |
| 13-Dec-2000 |
he | Pull up revision 1.73 (requested by itojun): Fix multicast inbound packet processing. Fixes PR#11629.
|
1.66.4.1 |
| 28-Jul-2000 |
sommerfeld | Pull up UDP, ICMP fixes:
- Drop packet, increment udps_badlen if the udp header length field reports a size smaller than the udp header; defends against bogus packets seen by by Assar Westerlund.
- allow icmp_error() to work when icmpreturndatabytes is sufficiently large that the icmp error message doesn't fit in a header mbuf.
- defend against mbuf chains shorter than their contained ip->ip_len.
Joint work of myself, itojun, and assar Approved by thorpej
revisions pulled up: sys/netinet/ip_icmp.c 1.52 sys/netinet/udp_usrreq.c 1.70
|
1.75.2.9 |
| 27-Aug-2002 |
nathanw | Catch up to -current.
|
1.75.2.8 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
1.75.2.7 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.75.2.6 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.75.2.5 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.75.2.4 |
| 22-Oct-2001 |
nathanw | Catch up to -current.
|
1.75.2.3 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.75.2.2 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.75.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.80.2.4 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.80.2.3 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.80.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.80.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.83.2.1 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.85.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.93.4.2 |
| 31-Mar-2004 |
tron | Pull up revision 1.118 (requested by itojun in ticket #1645): clean previous commit (uh_sum != 0 check in IPv6)
|
1.93.4.1 |
| 31-Mar-2004 |
tron | Pull up revision 1.117 (requested by itojun in ticket #1645): drop packet if IPv6 udp packet does not have checksum (checksum is mandatory in IPv6).
|
1.93.2.3 |
| 29-Aug-2002 |
gehenna | catch up with -current.
|
1.93.2.2 |
| 15-Jul-2002 |
gehenna | catch up with -current.
|
1.93.2.1 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
1.103.2.11 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.103.2.10 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.103.2.9 |
| 01-Apr-2005 |
skrll | Sync with HEAD.
|
1.103.2.8 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.103.2.7 |
| 15-Feb-2005 |
skrll | Sync with HEAD.
|
1.103.2.6 |
| 17-Jan-2005 |
skrll | Sync with HEAD.
|
1.103.2.5 |
| 18-Dec-2004 |
skrll | Sync with HEAD.
|
1.103.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.103.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.103.2.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.103.2.1 |
| 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
1.116.2.4 |
| 28-May-2004 |
tron | Pull up revision 1.122 (requested by atatat in ticket #391): Sysctl descriptions under net subtree (net.key not done)
|
1.116.2.3 |
| 10-May-2004 |
tron | Pull up revision 1.121 (requested by jonathan in ticket #280): Redo net.inet.* sysctl subtree for fast-ipsec from scratch. Attach FAST-IPSEC statistics with 64-bit counters to new sysctl MIB. Rework netstat to show FAST_IPSEC statistics, via sysctl, for netstat -p ipsec. New kernel files: sys/netipsec/Makefile (new file; install *_var.h includes) sys/netipsec/ipsec_var.h (new 64-bit mib counter struct) Changed kernel files: sys/Makefile (recurse into sys/netipsec/) sys/netinet/in.h (fake IP_PROTO name for fast_ipsec sysctl subtree.) sys/netipsec/ipsec.h (minimal userspace inclusion) sys/netipsec/ipsec_osdep.h (minimal userspace inclusion) sys/netipsec/ipsec_netbsd.c (redo sysctl subtree from scratch) sys/netipsec/key*.c (fix broken net.key subtree) sys/netipsec/ah_var.h (increase all counters to 64 bits) sys/netipsec/esp_var.h (increase all counters to 64 bits) sys/netipsec/ipip_var.h (increase all counters to 64 bits) sys/netipsec/ipcomp_var.h (increase all counters to 64 bits) sys/netipsec/ipsec.c (add #include netipsec/ipsec_var.h) sys/netipsec/ipsec_mbuf.c (add #include netipsec/ipsec_var.h) sys/netipsec/ipsec_output.c (add #include netipsec/ipsec_var.h) sys/netinet/raw_ip.c (add #include netipsec/ipsec_var.h) sys/netinet/tcp_input.c (add #include netipsec/ipsec_var.h) sys/netinet/udp_usrreq.c (add #include netipsec/ipsec_var.h) Changes to usr.bin/netstat to print the new fast-ipsec sysctl tree for "netstat -s -p ipsec": New file: usr.bin/netstat/fast_ipsec.c (print fast-ipsec counters) Changed files: usr.bin/netstat/Makefile (add fast_ipsec.c) usr.bin/netstat/netstat.h (declarations for fast_ipsec.c) usr.bin/netstat/main.c (call KAME-vs-fast-ipsec dispatcher)
|
1.116.2.2 |
| 31-Mar-2004 |
tron | Pull up revision 1.118 (requested by itojun in ticket #28): clean previous commit (uh_sum != 0 check in IPv6)
|
1.116.2.1 |
| 31-Mar-2004 |
tron | Pull up revision 1.117 (requested by itojun in ticket #28): drop packet if IPv6 udp packet does not have checksum (checksum is mandatory in IPv6).
|
1.129.4.2 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.129.4.1 |
| 12-Feb-2005 |
yamt | sync with head.
|
1.129.2.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.134.2.6 |
| 29-Dec-2005 |
riz | Pull up following revision(s) (requested by manu in ticket #1052): sys/netinet/udp_usrreq.c: revision 1.144 Fix a bug in ESP over UDP: because udp4_espinudp() called m_pullup, it could modify the struct mbuf and calling functions (udp_input() and udp4_realinput()) would have used a garbled local copy of the pointer. The fix is not perfect. udp4_espinudp() should use m_pulldown()...
|
1.134.2.5 |
| 08-Sep-2005 |
tron | Pull up following revision(s) (requested by kleink in ticket #744): sys/netinet/udp_usrreq.c: revision 1.142 udp4_espinudp(): don't assume that the Non-ESP marker (or UDP payload) is aligned on a 64-bit boundary.
|
1.134.2.4 |
| 06-May-2005 |
tron | Pull up revision 1.135 (requested by yamt in ticket #251): fix problems related to loopback interface checksum omission. PR/29971. - for ipv4, defer decision to ip layer as h/w checksum offloading does so that it can check the actual interface the packet is going to. - for ipv6, disable it. (maybe will be revisited when it implements h/w checksum offloading.) ok'ed by Jason Thorpe.
|
1.134.2.3 |
| 01-May-2005 |
tron | Pull up revision 1.138 (requested by manu in ticket #216): Fix memory leak
|
1.134.2.2 |
| 28-Apr-2005 |
tron | Pull up revision 1.137 (requested by manu in ticket #203): Don't sleep when handling ESP over UDP packets.
|
1.134.2.1 |
| 28-Apr-2005 |
tron | Pull up revision 1.136 (requested by man in ticket #201): Enhance IPSEC_NAT_T so that it can work with multiple machines behind the same NAT.
|
1.138.2.5 |
| 07-Dec-2007 |
yamt | sync with head
|
1.138.2.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.138.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.138.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.138.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.142.6.1 |
| 22-Nov-2005 |
yamt | sync with head.
|
1.145.2.2 |
| 01-Mar-2006 |
yamt | sync with head.
|
1.145.2.1 |
| 01-Feb-2006 |
yamt | sync with head.
|
1.146.4.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.146.2.3 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.146.2.2 |
| 07-Feb-2006 |
rpaulo | in6pcb -> inpcb.
|
1.146.2.1 |
| 05-Feb-2006 |
rpaulo | <netinet6/in6_pcb.h> went away. Bye!
|
1.147.2.1 |
| 11-Aug-2006 |
yamt | sync with head
|
1.148.6.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.148.6.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.148.4.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.156.4.3 |
| 17-May-2007 |
yamt | sync with head.
|
1.156.4.2 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.156.4.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.158.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.158.2.3 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.158.2.2 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.158.2.1 |
| 08-Jun-2007 |
ad | Sync with head.
|
1.160.8.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.160.8.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.160.6.2 |
| 03-Dec-2007 |
joerg | Sync with HEAD.
|
1.160.6.1 |
| 03-Sep-2007 |
jmcneill | Sync with HEAD.
|
1.160.2.1 |
| 03-Sep-2007 |
skrll | Sync with HEAD.
|
1.162.6.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.163.14.2 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.163.14.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.168.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.171.2.4 |
| 11-Mar-2010 |
yamt | sync with head
|
1.171.2.3 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.171.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.171.2.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.172.6.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.172.2.1 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.173.2.2 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.173.2.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.174.2.2 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.174.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.179.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.179.4.1 |
| 31-May-2011 |
rmind | sync with head
|
1.183.6.2 |
| 05-Apr-2012 |
mrg | sync to latest -current.
|
1.183.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.183.2.3 |
| 22-May-2014 |
yamt | 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")
|
1.183.2.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.183.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.187.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.187.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.187.2.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.190.2.5 |
| 18-May-2014 |
rmind | sync with head
|
1.190.2.4 |
| 17-Oct-2013 |
rmind | Eliminate some of the splsoftnet() calls, misc clean up.
|
1.190.2.3 |
| 23-Sep-2013 |
rmind | - Add some initial locking to the IPv4 PCB. - Rename inpcb_lookup_*() routines to be more accurate and add comments. - Add some comments about connection life-cycle WRT socket layer.
|
1.190.2.2 |
| 28-Aug-2013 |
rmind | Checkpoint work in progress: - Initial split of the protocol user-request method into the following methods: pr_attach, pr_detach and pr_generic for old the pr_usrreq. - Adjust socreate(9) and sonewconn(9) to call pr_attach without the socket lock held (as a preparation for the locking scheme adjustment). - Adjust all pr_attach routines to assert that PCB is not set. - Sprinkle various comments, document some routines and their locking. - Remove M_PCB, replace with kmem(9). - Fix few bugs spotted on the way.
|
1.190.2.1 |
| 17-Jul-2013 |
rmind | Checkpoint work in progress: - Move PCB structures under __INPCB_PRIVATE, adjust most of the callers and thus make IPv4 PCB structures mostly opaque. Any volunteers for merging in6pcb with inpcb (see rpaulo-netinet-merge-pcb branch)? - Move various global vars to the modules where they belong, make them static. - Some preliminary work for IPv4 PCB locking scheme. - Make raw IP code mostly MP-safe. Simplify some of it. - Rework "fast" IP forwarding (ipflow) code to be mostly MP-safe. It should run from a software interrupt, rather than hard. - Rework tun(4) pseudo interface to be MP-safe. - Work towards making some other interfaces more strict.
|
1.194.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.217.10.1 |
| 06-Jun-2018 |
martin | Pull up following revision(s) (requested by maxv in ticket #1607):
sys/netinet/udp_usrreq.c: revision 1.237 (via patch)
Fix three pretty bad mistakes in NAT-T:
* If we got a keepalive packet, we need to call m_freem, not m_free. Here the next mbufs in the chain are not freed. Seems easy to remotely DoS the system by sending fragmented keepalives in a loop.
* If !ipsec_used, free the mbuf.
* In udp_input, we need to update 'uh', because udp4_realinput may have modified the chain. Perhaps we also need to re-enforce alignment, so add an XXX.
|
1.217.6.1 |
| 07-Jun-2018 |
martin | Pull up following revision(s) (requested by maxv in ticket #1607):
sys/netinet/udp_usrreq.c: revision 1.237 (via patch)
Fix three pretty bad mistakes in NAT-T:
* If we got a keepalive packet, we need to call m_freem, not m_free. Here the next mbufs in the chain are not freed. Seems easy to remotely DoS the system by sending fragmented keepalives in a loop.
* If !ipsec_used, free the mbuf.
* In udp_input, we need to update 'uh', because udp4_realinput may have modified the chain. Perhaps we also need to re-enforce alignment, so add an XXX.
|
1.217.4.9 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.217.4.8 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.217.4.7 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.217.4.6 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.217.4.5 |
| 29-May-2016 |
skrll | Sync with HEAD
|
1.217.4.4 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.217.4.3 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.217.4.2 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.217.4.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.217.2.1 |
| 06-Jun-2018 |
martin | Pull up following revision(s) (requested by maxv in ticket #1607):
sys/netinet/udp_usrreq.c: revision 1.237 (via patch)
Fix three pretty bad mistakes in NAT-T:
* If we got a keepalive packet, we need to call m_freem, not m_free. Here the next mbufs in the chain are not freed. Seems easy to remotely DoS the system by sending fragmented keepalives in a loop.
* If !ipsec_used, free the mbuf.
* In udp_input, we need to update 'uh', because udp4_realinput may have modified the chain. Perhaps we also need to re-enforce alignment, so add an XXX.
|
1.226.2.4 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.226.2.3 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.226.2.2 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.226.2.1 |
| 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.229.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.233.4.3 |
| 07-Jun-2018 |
martin | Pull up following revision(s) (requested by maxv in ticket #837):
sys/netinet/udp_usrreq.c: revision 1.237
Fix three pretty bad mistakes in NAT-T:
* If we got a keepalive packet, we need to call m_freem, not m_free. Here the next mbufs in the chain are not freed. Seems easy to remotely DoS the system by sending fragmented keepalives in a loop.
* If !ipsec_used, free the mbuf.
* In udp_input, we need to update 'uh', because udp4_realinput may have modified the chain. Perhaps we also need to re-enforce alignment, so add an XXX.
|
1.233.4.2 |
| 09-Apr-2018 |
bouyer | Pull up following revision(s) (requested by roy in ticket #724): tests/net/icmp/t_ping.c: revision 1.19 sys/netinet6/raw_ip6.c: revision 1.166 sys/netinet6/ip6_input.c: revision 1.195 sys/net/raw_usrreq.c: revision 1.59 sys/sys/socketvar.h: revision 1.151 sys/kern/uipc_socket2.c: revision 1.128 tests/lib/libc/sys/t_recvmmsg.c: revision 1.2 lib/libc/sys/recv.2: revision 1.38 sys/net/rtsock.c: revision 1.239 sys/netinet/udp_usrreq.c: revision 1.246 sys/netinet6/icmp6.c: revision 1.224 tests/net/icmp/t_ping.c: revision 1.20 sys/netipsec/keysock.c: revision 1.63 sys/netinet/raw_ip.c: revision 1.172 sys/kern/uipc_socket.c: revision 1.260 tests/net/icmp/t_ping.c: revision 1.22 sys/kern/uipc_socket.c: revision 1.261 tests/net/icmp/t_ping.c: revision 1.23 sys/netinet/ip_mroute.c: revision 1.155 sbin/route/route.c: revision 1.159 sys/netinet6/ip6_mroute.c: revision 1.123 sys/netatalk/ddp_input.c: revision 1.31 sys/netcan/can.c: revision 1.3 sys/kern/uipc_usrreq.c: revision 1.184 sys/netinet6/udp6_usrreq.c: revision 1.138 tests/net/icmp/t_ping.c: revision 1.18 socket: report receive buffer overflows Add soroverflow() which increments the overflow counter, sets so_error to ENOBUFS and wakes the receive socket up. Replace all code that manually increments this counter with soroverflow(). Add soroverflow() to raw_input(). This allows userland to detect route(4) overflows so it can re-sync with the current state. socket: clear error even when peeking The error has already been reported and it's pointless requiring another recv(2) call just to clear it. socket: remove now incorrect comment that so_error is only udp As it can be affected by route(4) sockets which are raw. rtsock: log dropped messages that we cannot report to userland Handle ENOBUFS when receiving messages. Don't send messages if the receiver has died. Sprinkle more soroverflow(). Handle ENOBUFS in recv Handle ENOBUFS in sendto Note value received. Harden another sendto for ENOBUFS. Handle the routing socket overflowing gracefully. Allow a valid sendto .... duh Handle errors better. Fix test for checking we sent all the data we asked to.
|
1.233.4.1 |
| 21-Dec-2017 |
snj | Pull up following revision(s) (requested by ryo in ticket #445): distrib/sets/lists/debug/mi: revision 1.222 distrib/sets/lists/tests/mi: revision 1.760 share/man/man4/ip.4: revision 1.38 sys/netinet/in.c: revision 1.207 sys/netinet/in.h: revision 1.101 sys/netinet/in_pcb.c: revision 1.179 sys/netinet/in_pcb.h: revision 1.64 sys/netinet/ip_output.c: revision 1.284, 1.286 sys/netinet/ip_var.h: revision 1.120-1.121 sys/netinet/raw_ip.c: revision 1.166-1.167 sys/netinet/udp_usrreq.c: revision 1.235-1.236 sys/netinet/udp_var.h: revision 1.42 tests/net/net/Makefile: revision 1.21 tests/net/net/t_pktinfo_send.c: revision 1.1-1.2 Add support IP_PKTINFO for sendmsg(2). The source address or output interface can be specified by adding IP_PKTINFO to the control part of the message on a SOCK_DGRAM or SOCK_RAW socket. Reviewed by ozaki-r@ and christos@. thanks. -- As is the case with IPV6_PKTINFO, IP_PKTINFO can be sent without EADDRINUSE even if the UDP address:port in use is specified.
|
1.245.2.9 |
| 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.245.2.8 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.245.2.7 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.245.2.6 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.245.2.5 |
| 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.245.2.4 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.245.2.3 |
| 02-May-2018 |
pgoyette | Synch with HEAD
|
1.245.2.2 |
| 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.245.2.1 |
| 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.254.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.259.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.264.8.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|