summaryrefslogtreecommitdiff
path: root/sys/net/rtsock.c
AgeCommit message (Collapse)Author
2018-07-10Remove net/raw_cb.h from includes and replace the RAWSNDQ, RAWRCVQ withClaudio Jeker
protocol specific ones. OK mpi@
2018-07-10After removing raw_usrreq() from route and pfkey, the global sockaddrAlexander Bluhm
variables can be delared constant. OK claudio@ mpi@
2018-07-09Inline the raw_usrreq() function into route_usrreq(). This simplifies theClaudio Jeker
route code since there is no more special wrapping needed and in some places the PRU cases get easier because route(4) for example always connected. OK bluhm@ henning@ mpi@
2018-07-05fix comment: s/always send/always sent/Stuart Henderson
2018-07-05RTM_BFD route messages are also a special case. suggested by claudio@,Sebastian Benoit
ok phessler@
2018-07-05not all route messages have a priority. Move the priority filter checkSebastian Benoit
where it belongs. Problem spotted by by remi@ ok sthen@ claudio@ krw@
2018-07-01Retire support for unused RTM_LOCK messages, it's redundant w/ RTM_CHANGE.Martin Pieuchot
ok tb@, sthen@
2018-06-25Factorize MPLS setup/teardown into two functions.Martin Pieuchot
ok claudio@
2018-06-25Push the NET_LOCK() down in rtm_output().Martin Pieuchot
ok tb@, visa@
2018-06-11Rename routing & pfkey tables for coherency with other PCB tables.Martin Pieuchot
ok claudio@
2018-06-11Push the KERNEL_LOCK() inside route_input().Martin Pieuchot
ok visa@, tb@
2018-06-06Prefix fields of pfkey & routing PCBs, part 2, no functionnal change.Martin Pieuchot
ok tb@
2018-06-06Prefix fields of pfkey & routing PCBs, no functionnal change.Martin Pieuchot
ok visa@, tb@
2018-06-06Asseert that a pfkey or routing socket is referenced by a `fp' insteadMartin Pieuchot
of calling sofree(), when its PCB is detached. This is different from TCP which does not always detach `inpcb's from sockets. In the pfkey & routing case caling sofree() there is a noop whereas for TCP it's needed to free closed connections. Having fewer sofree() makes it easier to understand the code and move the locks down. ok visa@
2018-05-14Use a SRP list to protect pfkeyv2 sockets, thus removing the need toMartin Pieuchot
grab the KERNEL_LOCK() when delivering messages. This is the same solution already used by routing sockets. ok claudio@, visa@
2018-05-08Introduce rtm_sendup() a function to deliver routing messages to aMartin Pieuchot
socket receive buffer. It is modelled after pfkey_sendup() as both will need the same MP treatment. ok tb@, bluhm@, visa@
2018-04-24Remove unused rtentry parameter.Florian Obser
Input bluhm OK benno, kn, claudio
2018-02-19Remove almost unused `flags' argument of suser().Martin Pieuchot
The account flag `ASU' will no longer be set but that makes suser() mpsafe since it no longer mess with a per-process field. No objection from millert@, ok tedu@, bluhm@
2018-02-11Add a ROUTE_PRIOFILTER socket option for roueing sockets thatSebastian Benoit
allows filtering on the priority of the route. All routes up to the specified value will be passed. ok claudio, ok henning previous version, feedback and manpage from sthen.
2018-02-08Make the routing socket more MP save by using a SRPL list for the pcb list.Claudio Jeker
Still needs the big kernel lock but this is another step in the right direction. With and OK mpi@
2017-12-18Size for free(9).Martin Pieuchot
From <kshe59 at zoho.eu>
2017-12-13Spacing from kshe59@zoho.eu.Martin Pieuchot
2017-12-13Sizes for free in route_output().Martin Pieuchot
From kshe59@zoho.eu.
2017-12-10Remove outdated comment and trailing spaces.Martin Pieuchot
From kshe59@zoho.eu
2017-11-03After inlining of raw_detach we know the sizes for free; pointed outFlorian Obser
by & OK mpi, input & OK visa
2017-11-03use rop->rcb similar like in pfkeyv2_detach(); suggested by visaFlorian Obser
2017-11-03Inline trivial functions from raw_cb.c and tedu it.Florian Obser
Suggested by and OK mpi, OK visa
2017-11-02Move PRU_DETACH out of pr_usrreq into per proto pr_detachFlorian Obser
functions to pave way for more fine grained locking. Suggested by, comments & OK mpi
2017-10-09Reduces the scope of the NET_LOCK() in sysctl(2) path.Martin Pieuchot
Exposes per-CPU counters to real parrallelism. ok visa@, bluhm@, jca@
2017-09-05Replace NET_ASSERT_LOCKED() by soassertlocked() in *_usrreq().Martin Pieuchot
Not all of them need the NET_LOCK(). ok bluhm@
2017-09-01Change sosetopt() to no longer free the mbuf it receives and changeMartin Pieuchot
all the callers to call m_freem(9). Support from deraadt@ and tedu@, ok visa@, bluhm@
2017-08-11Remove NET_LOCK()'s argument.Martin Pieuchot
Tested by Hrvoje Popovski, ok bluhm@
2017-08-10Prevent userland to modify RTF_LOCAL route entries.Martin Pieuchot
In particular setting an expiration timer on a route entry which would confuse L2 state machines. ok bluhm@
2017-08-02Move a sanity check that only makes sense for userland where it belongs.Martin Pieuchot
ok bluhm@, florian@
2017-07-30Enable mpath support in the Allotment Routing Table (ART) on the ramdisk.Florian Obser
OK mpi
2017-07-30Switch installer to Allotment Routing Table (ART).Florian Obser
Prompted by a bugreport by naddy that IPv6 autoconfiguration is broken in the installer. OK mpi, "go for it" deraadt
2017-07-28Add an error argument to rtm_send() instead of rerolling it insideMartin Pieuchot
rtdeletemsg(). ok bluhm@
2017-07-26Fix typo in comment, ok deraadt@anton
2017-07-24rt_getifa() is only needed for routing commands submited by userland.Martin Pieuchot
So rename it to rtm_getifa(), move it where it belongs and stop calling it from rtrequest(9). Route entries created by the kernel must always specify the corresponding `ifa'. ok claudio@
2017-07-03Both PF_ROUTE and PF_KEY need to start to take care of their own PCB listClaudio Jeker
to simplify the locking of those lists. For now move the LIST_ENTRY from rawcb into routecb and in the pfkey case a new keycb. Do some cleanup and renaming in the pfkey code but more to come. OK bluhm@ mpi@
2017-06-26Assert that the corresponding socket is locked when manipulating socketMartin Pieuchot
buffers. This is one step towards unlocking TCP input path. Note that all the functions asserting for the socket lock are not necessarilly MP-safe. All the fields of 'struct socket' aren't protected. Introduce a new kernel-only kqueue hint, NOTE_SUBMIT, to be able to tell when a filter needs to lock the underlying data structures. Logic and name taken from NetBSD. Tested by Hrvoje Popovski. ok claudio@, bluhm@, mikeb@
2017-06-09Replace rtrequest(RTM_DELETE...) rtrequest_delete() and do not evenMartin Pieuchot
try to remove a route from the table if it is and invalid cache. This is a step towards decoupling code dealing with userland and kernel inserted routes. ok bluhm@
2017-04-19Use the rt_rmx defines that hide the struct rt_kmetrics indirection.Alexander Bluhm
No binary change. OK mpi@
2017-04-05When building counter memory in preparation to copy to userland, alwaysTheo de Raadt
zero the buffers first. All the current objects appear to be safe, however future changes might introduce structure pads. Discussed with guenther, ok bluhm
2017-03-16Do not allow to change the gateway of an existing entry if the AFMartin Pieuchot
family is incorrect. Prevent bgpd(8) to corrupt ARP entries as reported by Joe Holden. ok benno@, claudio@
2017-03-13Move PRU_ATTACH out of the pr_usrreq functions into pr_attach.Claudio Jeker
Attach is quite a different thing to the other PRU functions and this should make locking a bit simpler. This also removes the ugly hack on how proto was passed to the attach function. OK bluhm@ and mpi@ on a previous version
2017-03-09Remove unecessary splsoftnet()/splx() dances.Martin Pieuchot
ok bluhm@, claudio@
2017-03-07Do not grab the NET_LOCK() for routing sockets operations.Martin Pieuchot
The only function that need the lock is rtm_output() as it messes with the routing table. So grab the lock there since it is safe to sleep in a process context. ok bluhm@
2017-03-07Since route_input is no longer part of the protosw struct it is possible toClaudio Jeker
pass the socket to it and do the SO_USELOOPBACK check there. This removes a the nasty hack in the output function where the sp_family is set to 0 temporarily. OK bluhm@ mpi@
2017-03-06Move the guts of route_output() meesing with the routing table in theirMartin Pieuchot
own function. ok bluhm@