History log of /src/sys/netinet/in.h |
Revision | | Date | Author | Comments |
1.115 |
| 16-Jun-2023 |
rin | White space fixes. No binary changes.
|
1.114 |
| 03-Feb-2021 |
roy | CTASSERT -> __CTASSERT to unbreak userland build.
While here move __packed in tcp_debug.h back to where it was and note removal warrants more investigation.
|
1.113 |
| 03-Feb-2021 |
roy | Sprinkle CTASSERT to enforce on-wire layout without __packed
|
1.112 |
| 03-Feb-2021 |
roy | Remove __packed from various network structures
They are already network aligned and adding the __packed attribute just causes needless compiler warnings about accssing members of packed objects.
|
1.111 |
| 08-Sep-2020 |
christos | branches: 1.111.2; Add IP_BINDANY, IPV6_BINDANY which can be used to bind to any address in order to implement transparent proxies.
|
1.110 |
| 20-Aug-2020 |
riastradh | [ozaki-r] Changes to the kernel core for wireguard
|
1.109 |
| 18-Dec-2019 |
roy | inet: Add support for IPv4 /31 prefixes, as described in RFC 3021.
To run a /31 network, participating hosts MUST drop support for directed broadcasts, and treat the first and last addresses on subnet as unicast. The broadcast address for the prefix should be the link local broadcast address, INADDR_BROADCAST.
Taken from FreeBSD, r226402. Fixes PR kern/51388.
|
1.108 |
| 09-Nov-2018 |
maya | Use the same type redefinition guards as stdint.h since rev1.8
PR pkg/53713
|
1.107 |
| 22-Aug-2018 |
msaitoh | - Cleanup for dynamic sysctl: - Remove unused *_NAMES macros for sysctl. - Remove unused *_MAXID for sysctls. - Move CTL_MACHDEP sysctl definitions for m68k into m68k/include/cpu.h and use them on all m68k machines.
|
1.106 |
| 11-Jul-2018 |
maxv | Rename
ip_undefer_csum -> in_undefer_cksum in_delayed_cksum -> in_undefer_cksum_tcpudp
The two previous names were inconsistent and misleading.
Put the two functions into in_offload.c. Add comments to explain what we're doing.
The same could be done for IPv6.
|
1.105 |
| 19-Apr-2018 |
christos | branches: 1.105.2; s/static inline/static __inline/g for consistency.
|
1.104 |
| 09-Feb-2018 |
maxv | branches: 1.104.2; Remove dead code.
|
1.103 |
| 10-Jan-2018 |
knakahara | add ipsec(4) interface, which is used for route-based VPN.
man and ATF are added later, please see man for details.
reviewed by christos@n.o, joerg@n.o and ozaki-r@n.o, thanks. https://mail-index.netbsd.org/tech-net/2017/12/18/msg006557.html
|
1.102 |
| 01-Jan-2018 |
christos | 1) "#define ipi_spec_dst ipi_addr" in <netinet/in.h> 2) Change the IP_RECVPKTINFO option to control the generation of IP_PKTINFO control messages, the way it's done in Solaris. 3) Remove the superfluous IP_RECVPKTINFO control message. 4) Change the IP_PKTINFO option to do different things depending on the parameter it's supplied with: - If it's sizeof(int), assume it's being used as in Linux: - If it's non-zero, turn on the IP_RECVPKTINFO option. - If it's zero, turn off the IP_RECVPKTINFO option. - If it's sizeof(struct in_pktinfo), assume it's being used as in Solaris, to set a default for the source interface and/or source address for outgoing packets on the socket. 5) Return what Linux or Solaris compatible code expects, depending on data size, and just added a fallback to a Linux (and current NetBSD) compatible value if the size is unknown (as it is now), or, in the future, if the calling application specifies a receiving buffer that doesn't match either data item.
From: Tom Ivar Helbekkmo
|
1.101 |
| 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.100 |
| 16-Feb-2017 |
knakahara | branches: 1.100.6; add l2tp(4) L2TPv3 interface.
originally implemented by IIJ SEIL team.
|
1.99 |
| 01-Aug-2016 |
ozaki-r | branches: 1.99.2; Apply pserialize and psref to struct ifaddr and its variants
This change makes struct ifaddr and its variants (in_ifaddr and in6_ifaddr) MP-safe by using pserialize and psref. At this moment, pserialize_perform and psref_target_destroy are disabled because (1) we don't need them because of softnet_lock (2) they cause a deadlock because of softnet_lock. So we'll enable them when we remove softnet_lock in the future.
|
1.98 |
| 13-Oct-2015 |
rjs | branches: 1.98.2; Add core networking support for SCTP.
|
1.97 |
| 02-May-2015 |
roy | Add IPv4 address flags IN_IFF_TENTATIVE, IN_IFF_DUPLICATED and IN_IFF_DETATCHED to mimic the IPv6 address behaviour. Add SIOCGIFAFLAG_IN ioctl to retrieve the address flag via the ifreq structure. Add IPv4 DAD detection via the ARP methods described in RFC 5227. Add sysctls net.inet.ip.dad_count and net.inet.arp.debug.
Discussed on tech-net@
|
1.96 |
| 10-Feb-2015 |
rjs | Add DCCP protocol support from KAME.
|
1.95 |
| 02-Dec-2014 |
christos | use the new printing code.
|
1.94 |
| 02-Dec-2014 |
christos | add routines to print in_addr and sockaddr_in (in_print and sin_print)
|
1.93 |
| 12-Oct-2014 |
christos | branches: 1.93.2; document that we depend on the option numbers matching.
|
1.92 |
| 05-Jun-2014 |
rmind | - Implement pktqueue interface for lockless IP input queue. - Replace ipintrq and ip6intrq with the pktqueue mechanism. - Eliminate kernel-lock from ipintr() and ip6intr(). - Some preparation work to push softnet_lock out of ipintr().
Discussed on tech-net.
|
1.91 |
| 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.90 |
| 22-May-2014 |
rmind | - Add in_init() and move some functions, variables and sysctls into in.c where they belong to. Make some functions and variables static. - ip_input.c: reduce some #ifdefs, cleanup a little. - Move some sysctls into ip_flow.c as they belong there.
No functional change.
|
1.89 |
| 27-Jun-2013 |
christos | branches: 1.89.2; 1.89.6; implement IP_PKTINFO and IP_RECVPKTINFO.
|
1.88 |
| 27-Apr-2013 |
joerg | Systematically include sys/featuretest.h when _NETBSD_SOURCE is used. Some are redundant, but make verification with grep much easier.
|
1.87 |
| 22-Jun-2012 |
christos | branches: 1.87.2; PR/46602: Move the rfc6056 port randomization to the IP layer.
|
1.86 |
| 14-Sep-2009 |
degroote | branches: 1.86.12; Import pfsync support from OpenBSD 4.2
Pfsync interface exposes change in the pf(4) over a pseudo-interface, and can be used to synchronise different pf.
This work was part of my 2009 GSoC
No objection on tech-net@
|
1.85 |
| 17-Jul-2009 |
minskim | Add the IP_MINTTL socket option.
The IP_MINTTL option may be used on SOCK_STREAM sockets to discard packets with a TTL lower than the option value. This can be used to implement the Generalized TTL Security Mechanism (GTSM) according to RFC 3682.
OK'ed by christos@.
|
1.84 |
| 16-Jul-2009 |
minskim | Add the IP_RECVTTL option support.
If the IP_RECVTTL option is enabled on a SOCK_DGRAM socket, the recvmsg(2) call will return the TTL of the received datagram. The msg_control field in the msghdr structure points to a buffer that contains a cmsghdr structure followed by the TTL value.
Modeled after FreeBSD implementation.
|
1.83 |
| 25-Jan-2008 |
joerg | branches: 1.83.2; 1.83.10; 1.83.24; Refactor in_cksum/in4_cksum/in6_cksum implementations: - All three functions are included in the kernel by default. They call a backend function cpu_in_cksum after possibly computing the checksum of the pseudo header. - cpu_in_cksum is the core to implement the one-complement sum. The default implementation is moderate fast on most platforms and provides a 32bit accumulator with 16bit addends for L32 platforms and a 64bit accumulator with 32bit addends for L64 platforms. It handles edge cases like very large mbuf chains (could happen with native IPv6 in the future) and provides a good base for new native implementations. - Modify i386 and amd64 assembly to use the new interface.
This disables the MD implementations on !x86 until the conversion is done. For Alpha, the portable version is faster.
|
1.82 |
| 25-Dec-2007 |
perry | Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h
|
1.81 |
| 19-Sep-2007 |
dyoung | branches: 1.81.6; 1.81.8; 1.81.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
1.80 |
| 30-Aug-2007 |
dyoung | Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
1.79 |
| 02-May-2007 |
dyoung | branches: 1.79.2; 1.79.6; 1.79.8; Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
1.78 |
| 17-Feb-2007 |
dyoung | branches: 1.78.4; 1.78.6; 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.77 |
| 13-Nov-2006 |
dyoung | branches: 1.77.4; Add a source-address selection policy mechanism to the kernel.
Also, add ioctls SIOCGIFADDRPREF/SIOCSIFADDRPREF to get/set preference numbers for addresses. Make ifconfig(8) set/display preference numbers.
To activate source-address selection policies in your kernel, add 'options IPSELSRC' to your kernel configuration.
Miscellaneous changes in support of source-address selection:
1 Factor out some common code, producing rt_replace_ifa().
2 Abbreviate a for-loop with TAILQ_FOREACH().
3 Add the predicates on IPv4 addresses IN_LINKLOCAL() and IN_PRIVATE(), that are true for link-local unicast (169.254/16) and RFC1918 private addresses, respectively. Add the predicate IN_ANY_LOCAL() that is true for link-local unicast and multicast.
4 Add IPv4-specific interface attach/detach routines, in_domifattach and in_domifdetach, which build #ifdef IPSELSRC.
See in_getifa(9) for a more thorough description of source-address selection policy.
|
1.76 |
| 18-May-2006 |
liamjfoy | branches: 1.76.8; 1.76.10; Integrate Common Address Redundancy Procotol (CARP) from OpenBSD
'pseudo-device carp'
Thanks to: joerg@ christos@ riz@ and others who tested Ok: core@
|
1.75 |
| 16-Feb-2006 |
perry | branches: 1.75.2; 1.75.6; Change "inline" back to "__inline" in .h files -- C99 is still too new, and some apps compile things in C89 mode. C89 keywords stay.
As per core@.
|
1.74 |
| 24-Dec-2005 |
perry | branches: 1.74.2; 1.74.4; 1.74.6; Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
|
1.73 |
| 20-Dec-2005 |
christos | Define INADDR_NONE when we are in the kernel too.
|
1.72 |
| 11-Dec-2005 |
christos | merge ktrace-lwp.
|
1.71 |
| 05-Aug-2005 |
elad | Add sysctls for IP, ICMP, TCP, and UDP statistics.
|
1.70 |
| 31-Jan-2005 |
kim | branches: 1.70.6; Add RFC 3378 EtherIP support, ported from OpenBSD to NetBSD by Hans Rosenfeld (rosenfeld at grumpf.hope-2000.org)
This change makes it possible to add gif interfaces to bridges, which will then send and receive IP protocol 97 packets. Packets are Ethernet frames with an EtherIP header prepended.
|
1.69 |
| 15-Dec-2004 |
thorpej | branches: 1.69.2; 1.69.4; Don't perform checksums on loopback interfaces. They can be reenabled with the net.inet.*.do_loopback_cksum sysctl.
Approved by: groo
|
1.68 |
| 04-Sep-2004 |
manu | IPv4 PIM support, based on a submission from Pavlin Radoslavov posted on tech-net@
|
1.67 |
| 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.66 |
| 21-Apr-2004 |
itojun | no space between function name and paren: foo (blah) -> foo(blah)
|
1.65 |
| 18-Apr-2004 |
matt | De __P()
|
1.64 |
| 19-Nov-2003 |
jonathan | branches: 1.64.2; Patch back support for (badly) randomized IP ids, by request:
* Include "opt_inet.h" everywhere IP-ids are generated with ip_newid(), so the RANDOM_IP_ID option is visible. Also in ip_id(), to ensure the prototype for ip_randomid() is made visible.
* Add new sysctl to enable randomized IP-ids, provided the kernel was configured with RANDOM_IP_ID. (The sysctl defaults to zero, and is a read-only zero if RANDOM_IP_ID is not configured).
Note that the implementation of randomized IP ids is still defective, and should not be enabled at all (even if configured) without very careful deliberation. Caveat emptor.
|
1.63 |
| 10-Nov-2003 |
jonathan | Allocate sysctl oid for ipv4 sysctl node "ifq", define symbolic name, and bump IPCTL_MAXID. (Should have been committed with other ifq sysctl changes).
|
1.62 |
| 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.61 |
| 28-Apr-2003 |
bjh21 | branches: 1.61.2; Add a new feature-test macro, _NETBSD_SOURCE. If this is defined by the application, all NetBSD interfaces are made visible, even if some other feature-test macro (like _POSIX_C_SOURCE) is defined. <sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE, _POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve existing behaviour.
This has two major advantages: + Programs that require non-POSIX facilities but define _POSIX_C_SOURCE can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS. + It makes most of the #ifs simpler, in that they're all now ORs of the various macros, rather than having checks for (!defined(_ANSI_SOURCE) || !defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.
I've tried not to change the semantics of the headers in any case where _NETBSD_SOURCE wasn't defined, but there were some places where the current semantics were clearly mad, and retaining them was harder than correcting them. In particular, I've mostly normalised things so that _ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE, _XOPEN_SOURCE and _NETBSD_SOURCE in that order.
Tested by building for vax, encouraged by thorpej, and uncontested in tech-userlevel for a week.
|
1.60 |
| 12-Apr-2003 |
dogcow | PR/991: Darren Reed: Add a sysctl (checkinteface) to implement this. This implementation is taken from FreeBSD, but we default to off. XXX: We should really do this on a per ifaddr basis as jason suggested.
|
1.59 |
| 27-Jan-2003 |
kleink | C++ does not permit static a data member to have the same name as its class, so in a C++ environment rename the ip_opts member to Ip_opts as observed in several other implementations; from Jon Olsson in PR toolchain/19880.
|
1.58 |
| 13-May-2002 |
kleink | branches: 1.58.4; Define uint{8,32}_t locally, per XNS5.2/POSIX-2001, and use them in this header where applicable; use private fixed-width integer types otherwise.
|
1.57 |
| 12-May-2002 |
kleink | Provide local definitions of in_{addr,port}_t in <netinet/in.h> and use them where deemed appropriate by XNS5.2/POSIX-2001.
|
1.56 |
| 24-Feb-2002 |
martin | Clear M_BCAST and M_MCAST on outgoing mbufs. Don't copy ttl from the inner packet to the encapsulating packet. Make the outer ttl sysctl'able. This should close PR 14269 from Jasper Wallace (change partly from there) and it makes traceroute work over gre tunnels.
|
1.55 |
| 02-Jun-2001 |
thorpej | branches: 1.55.2; 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.54 |
| 27-May-2001 |
itojun | typo in comment
|
1.53 |
| 27-Mar-2001 |
itojun | net.inet.ip.maxfragpackets defines the maximum size of ip reass queue (prevents fragment flood from chewing up mbuf memory space). derived from KAME net.inet6.ip6.maxfragpackets.
|
1.52 |
| 19-Jan-2001 |
kleink | branches: 1.52.2; Add IPPROTO_VRRP.
|
1.51 |
| 28-Aug-2000 |
simonb | #define<tab> cleanup.
|
1.50 |
| 25-Aug-2000 |
tron | Add new sysctl variables "net.inet.ip.lowportmin" and "net.inet.ip.lowportmax" which can be used to the set minimum and maximum port number assigned to sockets using IP_PORTRANGE_LOW.
|
1.49 |
| 28-Jul-2000 |
kleink | Avoid recursion with traditional cpp.
|
1.48 |
| 26-Jun-2000 |
kleink | XNS5.2: define sa_family_t and use it where specified by the standard.
|
1.47 |
| 10-Mar-2000 |
itojun | branches: 1.47.4; move IPPROTO_DONE to IPPROTO_xx group
|
1.46 |
| 17-Feb-2000 |
darrenr | Change the use of pfil hooks. There is no longer a single list of all pfil information, instead, struct protosw now contains a structure which caontains list heads, etc. The per-protosw pfil struct is passed to pfil_hook_get(), along with an in/out flag to get the head of the relevant filter list. This has been done for only IPv4 and IPv6, at present, with these patches only enabling filtering for IPPROTO_IP and IPPROTO_IPV6, although it is possible to have tcp/udp, etc, dedicated filters now also. The ipfilter code has been updated to only filter IPv4 packets - next major release of ipfilter is required for ipv6.
|
1.45 |
| 09-Feb-2000 |
itojun | to improve RFC2553/2292 compliance, and promote use of RFC2553/2292-compliant header file path, now the following headers are forbidden: netinet6/ip6.h netinet6/icmp6.h netinet6/in6.h
if you want netinet6/{ip6,icmp6}.h, use netinet/{ip6,icmp6}.h.
if you want netinet6/in6.h, you just need to include netinet/in.h. it pulls it in. (we may need to integrate them into netinet/in.h, but for cross-BSD code sharing i'd like to keep it like this for now)
|
1.44 |
| 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.43 |
| 20-Nov-1999 |
thorpej | Add the `packed' attribute to structures which describe wire protocol data.
|
1.42 |
| 02-Jul-1999 |
itojun | branches: 1.42.2; 1.42.8; move ipsec sysctl index to IPPROTO_AH (instead of IPPROTO_ESP), so that you can perform sysctl operation when ESP is not compiled in.
|
1.41 |
| 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.40 |
| 26-Jun-1999 |
sommerfeld | If the new global variable hostzerobroadcast is zero, no longer assume address zero of each net/subnet is a broadcast address. (The default value is nonzero, which preserves the current behavior).
This can be set using sysctl; the boot-time default can also be configured using the HOSTZEROBROADCAST kernel config option.
While we're here, defopt HOSTZEROBROADCAST and SUBNETSARELOCAL
|
1.39 |
| 14-Sep-1998 |
hwr | branches: 1.39.6; 1.39.8; 1.39.10; Typo. :(
|
1.38 |
| 14-Sep-1998 |
hwr | Some additions. And IDPR-CMTP is 38 not 39 according to IANA.
|
1.37 |
| 13-Sep-1998 |
hwr | Add a gre tunnel pseudo network device. Gre = generic route encapsulation. This device shows up like any other network interface and can be used to tunnel L3 protocols as e.g. IP over IP.
|
1.36 |
| 05-Sep-1998 |
kleink | Protect _XOPEN_SOURCE against sysctl MIB identifiers.
|
1.35 |
| 04-May-1998 |
matt | Default IP flow to being enabled. Add a sysctl to control the maximum number of flows (net.inet.ip.maxflows). If set to 0, will disable fast path forwarding.
|
1.34 |
| 29-Apr-1998 |
kml | Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
1.33 |
| 10-Feb-1998 |
perry | add/cleanup multiple inclusion protection.
|
1.32 |
| 07-Jan-1998 |
lukem | add the following, derived from FreeBSD: * IP_PORTRANGE socket option, which controls how the ephemeral ports are allocated. it takes the following settings: IP_PORTRANGE_DEFAULT use anonportmin (49152) -> anonportmax (65535) IP_PORTRANGE_HIGH as IP_PORTRANGE_DEFAULT (retained for FreeBSD compat reasons, where these are separate) IP_PORTRANGE_LOW use 600 -> 1023. only works if uid==0. * in_pcb flag INP_ANONPORT. set if port was allocated ephmerally
|
1.31 |
| 05-Jan-1998 |
lukem | enhance ephemeral port allocation code: * support sysctl net.inet.ip.anonportmin (lowest ephemeral port) and net.inet.ip.anonportmax (highest ephemeral port). these can't be set to >65535, < IPPORT_RESERVED (unless IPNOPRIVPORTS is defined), and anonportmin has to be < anonportmax. * use a cleaner way of only cycling through the available set once; this will be useful for when a random allocation scheme is used * define IPPORT_ANON{MIN,MAX} instead of IPPORT_USER{LOW,HIGH}
|
1.30 |
| 30-Dec-1997 |
lukem | as per the IANA assigned ports numbers document, use ports 49152..65535 for ephemeral ports (instead of 1024..5000). closes my [kern/4440], but with correct code :)
|
1.29 |
| 16-Dec-1997 |
thorpej | Add INADDR_ALLRTRS_GROUP and INADDR_MAX_LOCAL_GROUP.
|
1.28 |
| 18-Oct-1997 |
kml | branches: 1.28.2; change sysctl net.inet.icmp.mtudisc to net.inet.ip.mtudisc
|
1.27 |
| 17-Oct-1997 |
thorpej | Allow `subnetsarelocal' to be changed via sysctl.
|
1.26 |
| 14-Oct-1997 |
matt | Add support for returning maximum supported MTU when ip_output fails with EMSGSIZE.
|
1.25 |
| 27-Aug-1997 |
matt | Add IPPROTO_ESP and IPPROTO_AH defines.
|
1.24 |
| 25-Feb-1997 |
cjs | branches: 1.24.4; Add net.inet.ip.allowsrcrt option which allows/drops all source routed packets. This currently defaults to `drop,' but once we verify that all applications that rely on determining remote IP addresses for authentication are dropping the connection when they see a source route option (not just disabling the source route option), we can turn this back on and conform with the host requirements.
|
1.23 |
| 11-Jan-1997 |
thorpej | branches: 1.23.4; 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.22 |
| 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.21 |
| 22-May-1996 |
mycroft | A few style changes to match netiso and netns.
|
1.20 |
| 13-Feb-1996 |
christos | branches: 1.20.4; netinet prototypes
|
1.19 |
| 16-Jan-1996 |
thorpej | Add a net.inet.ip.directed-broadcast sysctl as suggested by Darren Reed <darrenr@vitruvius.arbld.unimelb.edu.au> in PR #1227. This change is slightly different than the one submitted by Darren in that the DIRECTED_BROADCAST compile-time option will behave like it used to so that existing configurations utilizing it won't have to change.
|
1.18 |
| 15-Jan-1996 |
thorpej | Add net.inet.ip.forwsrcrt: if zero, the system will not forward source-routed packets. Note this value is protected by kernel security level; it can only be changed if securelevel < 1.
|
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 |
| 31-May-1995 |
mycroft | Add IPPROTO_IP. Fix comment for IP_MULTICAST_IF.
|
1.14 |
| 13-Apr-1995 |
cgd | be a bit more careful and explicit with types. (basically a large no-op.)
|
1.13 |
| 26-Mar-1995 |
jtc | KERNEL -> _KERNEL
|
1.12 |
| 29-Jun-1994 |
cgd | New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
1.11 |
| 14-May-1994 |
cgd | i forgot a four letter word...
|
1.10 |
| 14-May-1994 |
cgd | multiple inclusion protection, for the rpc headers
|
1.9 |
| 13-May-1994 |
mycroft | Update to 4.4-Lite networking code, with a few local changes.
|
1.8 |
| 28-Jan-1994 |
deraadt | need a stub 'struct socket;' for a prototype
|
1.7 |
| 26-Jan-1994 |
cgd | renumber the IP setsockopt options back to the Reno/Net2 versions, moving the multicast options after them From: Mike Karels <karels@BSDI.COM> (grr.)
|
1.6 |
| 09-Jan-1994 |
mycroft | Prototype the rest.
|
1.5 |
| 08-Jan-1994 |
mycroft | Fix some inconsistent spacing; spaces at the end of lines, etc.
|
1.4 |
| 06-Dec-1993 |
hpeyerl | multicast patches >From Chris Maeda, cmaeda@cs.washington.edu These patches are derived from the IP Multicast patches for BSDI.
|
1.3 |
| 20-May-1993 |
cgd | more rcsid additions and file header cleanups
|
1.2 |
| 19-Apr-1993 |
mycroft | Add consistent multiple-inclusion protection.
|
1.1 |
| 21-Mar-1993 |
cgd | branches: 1.1.1; Initial revision
|
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.20.4.1 |
| 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.23.4.1 |
| 12-Mar-1997 |
is | Merge in changes from Trunk
|
1.24.4.2 |
| 14-Oct-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.24.4.1 |
| 28-Aug-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.28.2.2 |
| 09-May-1998 |
mycroft | Pull up patch from kml.
|
1.28.2.1 |
| 29-Jan-1998 |
mellon | Pull up 1.29 (thorpej)
|
1.39.10.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.39.10.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.39.10.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.39.8.2 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.39.8.1 |
| 01-Jul-1999 |
thorpej | Sync w/ -current.
|
1.39.6.1 |
| 30-May-2001 |
he | Pull up revision 1.53 (via patch, requested by he): Introduce net.inet.ip.maxfragpackets, which controls the maximum number of IPv4 fragment reassembly queue entries. Defends against certain DoS attacks. Fixes SA#2001-006.
|
1.42.8.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.42.2.3 |
| 27-Mar-2001 |
bouyer | Sync with HEAD.
|
1.42.2.2 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.42.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.47.4.3 |
| 26-Feb-2002 |
he | Pull up revision 1.56 (via patch, requested by martin): Clear M_BCAST and M_MCAST on encapsulated packets on outgoing mbufs. Also do not copy TTL from the inner packet, and make the outer TTL sysctl'able. Fixes PR#14269, and makes traceroute work over GRE tunnels.
|
1.47.4.2 |
| 24-Apr-2001 |
he | Pull up revision 1.53 (via patch, requested by itojun): Introduce net.inet.ip.maxfragpackets, which controls the maximum number of IPv4 fragment reassembly queue entries. Defends against certain DoS attacks.
|
1.47.4.1 |
| 26-Aug-2000 |
tron | Pull up from current (approved by thorpej):
Add new sysctl variables "net.inet.ip.lowportmin" and "net.inet.ip.lowportmax" which can be used to the set minimum and maximum port number assigned to sockets using IP_PORTRANGE_LOW.
syssrc/sys/netinet/in.h 1.49 -> 1.50 syssrc/sys/netinet/in_pcb.c 1.66 -> 1.67 syssrc/sys/netinet/ip_input.c 1.116 -> 1.117 syssrc/sys/netinet/ip_var.h 1.41 -> 1.42
|
1.52.2.4 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.52.2.3 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.52.2.2 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.52.2.1 |
| 09-Apr-2001 |
nathanw | Catch up with -current.
|
1.55.2.2 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.55.2.1 |
| 16-Mar-2002 |
jdolecek | Catch up with -current.
|
1.58.4.1 |
| 28-Apr-2003 |
tron | Pull up revision 1.59 (requested by kleink in ticket #1119): C++ does not permit static a data member to have the same name as its class, so in a C++ environment rename the ip_opts member to Ip_opts as observed in several other implementations; from Jon Olsson in PR toolchain/19880.
|
1.61.2.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.61.2.5 |
| 04-Feb-2005 |
skrll | Sync with HEAD.
|
1.61.2.4 |
| 18-Dec-2004 |
skrll | Sync with HEAD.
|
1.61.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.61.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.61.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.64.2.1 |
| 10-May-2004 |
tron | Pull up revision 1.67 (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.69.4.1 |
| 12-Feb-2005 |
yamt | sync with head.
|
1.69.2.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.70.6.7 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.70.6.6 |
| 21-Jan-2008 |
yamt | sync with head
|
1.70.6.5 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.70.6.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.70.6.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.70.6.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.70.6.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.74.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.74.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.74.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.74.2.1 |
| 18-Feb-2006 |
yamt | sync with head.
|
1.75.6.1 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.75.2.1 |
| 24-May-2006 |
yamt | sync with head.
|
1.76.10.1 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.76.8.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.77.4.2 |
| 07-May-2007 |
yamt | sync with head.
|
1.77.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.78.6.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.78.4.2 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.78.4.1 |
| 08-Jun-2007 |
ad | Sync with head.
|
1.79.8.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.79.8.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.79.8.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.79.6.2 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.79.6.1 |
| 03-Sep-2007 |
jmcneill | Sync with HEAD.
|
1.79.2.1 |
| 03-Sep-2007 |
skrll | Sync with HEAD.
|
1.81.12.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.81.8.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.81.6.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.83.24.1 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.83.10.3 |
| 16-Sep-2009 |
yamt | sync with head
|
1.83.10.2 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.83.10.1 |
| 18-Jul-2009 |
yamt | sync with head.
|
1.83.2.1 |
| 22-Feb-2008 |
keiichi | imported Mobile IPv6 code developed by the SHISA project (http://www.mobileip.jp/).
|
1.86.12.2 |
| 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.86.12.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.87.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.87.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.87.2.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.89.6.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.89.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.93.2.5 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.93.2.4 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.93.2.3 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.93.2.2 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.93.2.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.98.2.2 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.98.2.1 |
| 06-Aug-2016 |
pgoyette | Sync with HEAD
|
1.99.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.100.6.3 |
| 18-Mar-2018 |
martin | Pull up following revision(s) (requested by tih in ticket #639): sys/kern/uipc_socket.c: revision 1.258 sys/kern/uipc_socket.c: revision 1.259 sys/netinet/ip_input.c: revision 1.364 (via patch) sys/netinet/ip_output.c: revision 1.289 sys/netinet/in.h: revision 1.102 sys/netinet/in_pcb.c: revision 1.181 share/man/man9/sockopt.9: revision 1.11 sys/netinet/in_pcb.h: revision 1.65 sys/sys/socketvar.h: revision 1.146 sys/kern/uipc_syscalls.c: revision 1.189 sys/netinet/ip_output.c: revision 1.290 share/man/man4/ip.4: revision 1.41 share/man/man4/ip.4: revision 1.42 sys/kern/uipc_syscalls.c: revision 1.190
pass valsize for getsockopt like we do for setsockopt make sure that we have enough space, don't require the exact size (Tom Ivar Helbekkmo)
1) "#define ipi_spec_dst ipi_addr" in <netinet/in.h> 2) Change the IP_RECVPKTINFO option to control the generation of IP_PKTINFO control messages, the way it's done in Solaris. 3) Remove the superfluous IP_RECVPKTINFO control message. 4) Change the IP_PKTINFO option to do different things depending on the parameter it's supplied with: - If it's sizeof(int), assume it's being used as in Linux: - If it's non-zero, turn on the IP_RECVPKTINFO option. - If it's zero, turn off the IP_RECVPKTINFO option. - If it's sizeof(struct in_pktinfo), assume it's being used as in Solaris, to set a default for the source interface and/or source address for outgoing packets on the socket. 5) Return what Linux or Solaris compatible code expects, depending on data size, and just added a fallback to a Linux (and current NetBSD) compatible value if the size is unknown (as it is now), or, in the future, if the calling application specifies a receiving buffer that doesn't match either data item.
From: Tom Ivar Helbekkmo
new sentence-new line
Remove comment now that the getsockopt code passes the size.
Add a new sockopt member to keep track of the actual size of the option that should be returned to the caller in getsockopt(2). (Tom Ivar Helbekkmo)
|
1.100.6.2 |
| 11-Feb-2018 |
snj | Pull up following revision(s) (requested by ozaki-r in ticket #536): distrib/sets/lists/base/shl.mi: 1.825 distrib/sets/lists/comp/mi: 1.2168-1.2169 distrib/sets/lists/comp/shl.mi: 1.310 distrib/sets/lists/debug/mi: 1.234 distrib/sets/lists/debug/shl.mi: 1.188 distrib/sets/lists/man/mi: 1.1570 distrib/sets/lists/tests/mi: 1.772 etc/mtree/NetBSD.dist.tests: 1.150 share/man/man4/Makefile: 1.650 share/man/man4/ipsec.4: 1.42-1.43 share/man/man4/ipsecif.4: 1.1-1.5 sys/arch/amd64/conf/ALL: 1.77 sys/arch/amd64/conf/GENERIC: 1.480 sys/conf/files: 1.1191 sys/net/Makefile: 1.34 sys/net/files.net: 1.14 sys/net/if.c: 1.404 sys/net/if.h: 1.248 sys/net/if_gif.c: 1.135 sys/net/if_ipsec.c: 1.1-1.3 sys/net/if_ipsec.h: 1.1 sys/net/if_l2tp.c: 1.16 sys/net/if_types.h: 1.28 sys/netinet/in.c: 1.214 sys/netinet/in.h: 1.103 sys/netinet/in_gif.c: 1.92 sys/netinet/ip_var.h: 1.122 sys/netinet6/in6.c: 1.257 sys/netinet6/in6.h: 1.88 sys/netinet6/in6_gif.c: 1.90 sys/netinet6/ip6_var.h: 1.75 sys/netipsec/Makefile: 1.6 sys/netipsec/files.netipsec: 1.13 sys/netipsec/ipsec.h: 1.62 sys/netipsec/ipsecif.c: 1.1 sys/netipsec/ipsecif.h: 1.1 sys/netipsec/key.c: 1.246-1.247 sys/netipsec/key.h: 1.34 sys/rump/net/Makefile.rumpnetcomp: 1.20 sys/rump/net/lib/libipsec/IPSEC.ioconf: 1.1 sys/rump/net/lib/libipsec/Makefile: 1.1 sys/rump/net/lib/libipsec/ipsec_component.c: 1.1 tests/net/Makefile: 1.34 tests/net/if_ipsec/Makefile: 1.1 tests/net/if_ipsec/t_ipsec.sh: 1.1-1.2 Don't touch an SP without a reference to it unify processing to check nesting count for some tunnel protocols. add ipsec(4) interface, which is used for route-based VPN. man and ATF are added later, please see man for details. reviewed by christos@n.o, joerg@n.o and ozaki-r@n.o, thanks. https://mail-index.netbsd.org/tech-net/2017/12/18/msg006557.html ipsec(4) interface supports rump now. add ipsec(4) interface ATF. add ipsec(4) interface man as ipsecif.4. add ipsec(4) interface to amd64/GENERIC and amd64/ALL configs. apply in{,6}_tunnel_validate() to gif(4). Spell IPsec that way. Simplify macro usage. Sort SEE ALSO. Bump date for previous. Improve wording and macro use. Some parts are not clear to me, so someone with knowledge of ipsecif(4) should improve this some more. Improve ipsecif.4. Default port ipsec(4) NAT-T is tested now. pointed out by wiz@n.o and suggested by ozaki-r@n.o, thanks. Change the prefix of test names to ipsecif_ to distinguish from tests for ipsec(4) New sentence, new line. Remove empty macro. Fix PR kern/52920. Pointed out by David Binderman, thanks. Improve wording, and put a new drawing, from me and Kengo Nakahara. apply a little more #ifdef INET/INET6. fixes !INET6 builds.
|
1.100.6.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.104.2.4 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.104.2.3 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.104.2.2 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.104.2.1 |
| 22-Apr-2018 |
pgoyette | Sync with HEAD
|
1.105.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.105.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.111.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|