Home | History | Annotate | Download | only in netinet
History log of /src/sys/netinet/portalgo.c
RevisionDateAuthorComments
 1.15  04-Nov-2022  ozaki-r inpcb: rename functions to in6pcb_*
 1.14  04-Nov-2022  ozaki-r inpcb: rename functions to inpcb_*

Inspired by rmind-smpnet patches.
 1.13  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.12  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.11  11-Jan-2017  ozaki-r Get rid of unnecessary header inclusions
 1.10  26-Apr-2016  ozaki-r branches: 1.10.2;
Sweep unnecessary route.h inclusions
 1.9  24-Aug-2015  pooka sprinkle _KERNEL_OPT
 1.8  10-Feb-2015  rjs Add DCCP protocol support from KAME.
 1.7  02-Dec-2014  christos use the new printing code.
 1.6  08-Sep-2014  joerg branches: 1.6.2;
Always use cprng_fast32, even during initialisation. No point in using
random(9).
 1.5  01-Jun-2013  pooka branches: 1.5.2;
Give portalgo a compile-time override; for cases where the default default
doesn't make enough sense to even consider it (a lot of outgoing connections
from rump kernels with local port 65535).
 1.4  07-Dec-2012  christos use __BITMAP_TYPE
 1.3  01-Dec-2012  christos switch from fd_set to using bitmap macros
 1.2  29-Nov-2012  christos Add a new sysctl to mark ports as reserved, so that they are not used in
the anonymous or reserved port allocation.
 1.1  25-Jun-2012  christos branches: 1.1.2; 1.1.4;
rename rfc6056 -> portalgo, requested by yamt
 1.1.4.4  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.1.4.3  16-Jan-2013  yamt sync with (a bit old) head
 1.1.4.2  30-Oct-2012  yamt sync with head
 1.1.4.1  25-Jun-2012  yamt file portalgo.c was added on branch yamt-pagecache on 2012-10-30 17:22:46 +0000
 1.1.2.3  03-Dec-2017  jdolecek update from HEAD
 1.1.2.2  23-Jun-2013  tls resync from head
 1.1.2.1  25-Feb-2013  tls resync with head
 1.5.2.2  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.5.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.6.2.4  05-Feb-2017  skrll Sync with HEAD
 1.6.2.3  29-May-2016  skrll Sync with HEAD
 1.6.2.2  22-Sep-2015  skrll Sync with HEAD
 1.6.2.1  06-Apr-2015  skrll Sync with HEAD
 1.10.2.1  20-Mar-2017  pgoyette Sync with HEAD

RSS XML Feed