summaryrefslogtreecommitdiff
path: root/sys/netinet
AgeCommit message (Collapse)Author
2014-11-25Since in_broadcast() is now used to always iterate on all the interfacesMartin Pieuchot
of your system, put it on a diet and kill the superfluous logic. ok mikeb@
2014-11-25The proliferation of "struct route" in all its flavors didn't makeMartin Pieuchot
any good to our network stack. The most visible effect is the maze of #ifdef's and casts. But the real problem is the very fragile way of checking if a (cached) route entry is still valid or not. What should we do if the route jumped to another ifaddr or if its gateway has been changed? This change start the dance of "struct route" & friends removal by sending the completly useless "struct route_enc" to the bucket. Tweak & ok claudio@
2014-11-25unifdef -USCOPEDROUTING, no object change.Martin Pieuchot
2014-11-24Rename rt_ifa_addloop() into rt_ifa_addlocal() and make it return anMartin Pieuchot
error code on failure (unchecked for the moment). ok mikeb@, jmc@
2014-11-20sizes for simple free cases. sizeof(*) and one case where len is clear.Ted Unangst
2014-11-20Yet more #include de-duplication.Kenneth R Westerback
ok deraadt@ tedu@
2014-11-20In TCP and UDP layers do not (ab)use the receiving interface to checkMartin Pieuchot
for a multicast/broadcast destination address. These checks have already been done in the Ethernet and IP layers and the mbuf(9) should contain all the required information at this point. But since we cannot trust this spaghetti stack, be paranoid and make sure to set the flags in the IP input routines. Use explicit comments, requested by deraadt@. ok claudio@
2014-11-20funky spacing.Martin Pieuchot
2014-11-20Instead of playing hide-and-seek with the route to destination attachedMartin Pieuchot
to p2p interfaces always mark them as Multipath. This way we can have multiple routes to the same destination as long as the local address is different. ok mikeb@
2014-11-18move arc4random prototype to systm.h. more appropriate for most codeTed Unangst
to include that than rdnvar.h. ok deraadt dlg
2014-11-16remove now unnecessary casts from hash update calls.Ted Unangst
2014-11-15use siphash in the in_pcb hashing. this mitigates it against floodingDavid Gwynne
attacks. this is a textbook use of siphash. the idea of using siphash for this came from yasuoka-san, but i had the time to do it. he also tested and tweaked this diff. ok yasuoka@ mikeb@
2014-11-09To implement transparent relays for connectionless protocols, theAlexander Bluhm
pf the state has to vanish immediately when the relay closes the socket. To make this work reliably, the linkage between state and socket must be established with the first packet. This packet could be incomming or outgoing. Link the pf state in the socket layer earlier. This makes all tests in /usr/src/regress/sys/net/pf_divert pass. OK henning@
2014-11-06Let's just call a rdomain a rdomain.Martin Pieuchot
ok dlg@
2014-11-06mix the rtable into the hash for tcp sequence number generation.David Gwynne
ok tedu@ claudio@
2014-11-05Did you ever wonder why loopback's ifas have a destination address?Martin Pieuchot
It is of course not to make your life more complicated when you are dealing with ifa_ifwithaddr()! It was to reuse the point-to-point code to add a route to 127.0.0.1. But now we have local routes and we don't need this hack anymore :) ok mikeb@ as part of a larger diff.
2014-11-05Kill in_iawithaddr() and use ifa_ifwithaddr() directly.Martin Pieuchot
Note that ifa_ifwithaddr() might return a broadcast address, so if you don't want one make sure to filter them out. ok mikeb@
2014-11-04Remove "pl" suffix on pool names.Martin Pieuchot
ok dlg@, uebayasi@, mikeb@
2014-11-03Fix kernel stack overflow by preventing carp_send_ad_all() from re-entrantGerhard Roth
calls. Also, when adjusting demote counts, don't call carp_send_ad_all() for every ifgroup with a demote count of 1 but rather call it only once after adjusting the demote counts of all ifgroups. ok bluhm@ mpf@
2014-11-01Rename rtalloc1() into rtalloc(9) and convert its flags to only enableMartin Pieuchot
functionnality instead of a mix of enable/disable. ok bluhm@, jca@
2014-10-28Select a proper source address when the bound address isYASUOKA Masahiko
INADDR_BROADCAST the same as INADDR_ANY. ok mpi
2014-10-24Fix indentation of closing brace.Alexander Bluhm
From Florian Riehm
2014-10-20use sha512 instead of md5 for tcp isn. ok deraadtTed Unangst
2014-10-14Don't check for an empty list of interfaces. This is never true even ifMartin Pieuchot
you don't have a physical interface on your machine, so why rawip should be more clever^Wparanoid than the others? ok henning@, mikeb@
2014-10-14Use rtfree() instead of RTFREE(), NULLify some free'd route pointers andMartin Pieuchot
kill the macro. ok mikeb@, henning@
2014-10-08Remove #ifdef SO_OOBINLINE, it is always defined.Alexander Bluhm
OK henning@
2014-10-08Check if the outgoing route is associated to a broadcast address insteadMartin Pieuchot
of doing a lookup on all the addresses of the outgoing interface. ok henning@
2014-10-07Do not protect the SIOCSIFADDR call by splnet(). Drivers alreadyMartin Pieuchot
raise it inside their ioctl handler (except for carp(4), what else?). In general, global structures manipulated in the softnet codepath only require a splsoftnet() protection when they are modified in process (ioctl) context. Also put some IPL_SOFNET asserts in functions accessing global structures. Previous version diff ok mikeb@, with inputs from and ok bluhm@
2014-10-02There is no point in trying to purge the default host route forMartin Pieuchot
loopback interfaces because we no longer add it. ok claudio@
2014-10-01Fix loopback related breakage introduced by the conversion of in_ouraddr()Martin Pieuchot
to use the routing table. Do not create a host route for loopback addresses apart from the local ones otherwise these addresses are not considered as part of the machine. Reported by deraadt@ and Heiko Zimmermann on bugs@.
2014-09-30add back the sys/sysctl.h include removed in rev 1.60Jonathan Gray
fixes the kernel build when PIM is defined
2014-09-30Do not use the global list of IPv4 addresses in icmp_reflect()...Martin Pieuchot
...but the routing table! Note that this lookup is redundant with the one done in in_ouraddr() and we should be able to save this information instead of redoing a lookup if we need to send an error message. ok kspillner@, bluhm@, claudio@
2014-09-30Use the routing table instead of the RB-tree for address lookups inMartin Pieuchot
in_ouraddr(). The lookup done in the forwarding case will hopefully be merged with this one in the future. ok kspillner@, bluhm@, claudio@
2014-09-28Remove a limitation that ignored IPv6 link-local addresses on carp(4).Reyk Floeter
This workaround was needed when the interface link-local address was still enabled by default to prevent immediate state transition on interfaces without any configured addresses. This is not needed anymore and removing the limitation allows to use carp(4) with addresses like fe80::2%carp0. discussed with some ok mpi@ pelikan@
2014-09-27Kill rtalloc() and update rtalloc1() and rtalloc_mpath() to no longerMartin Pieuchot
rely on "struct route" that should die. ok claudio@
2014-09-14remove uneeded proc.h includesJonathan Gray
ok mpi@ kspillner@
2014-09-08remove uneeded route.h includesJonathan Gray
ok miod@ mpi@
2014-09-03When a route to prefix (connected route) is added, if its associatedMartin Pieuchot
broadcast address is non null, add a broadcast entry flagged with RTF_BROADCAST. Re-use the existing logic to switch a route to prefix from an ifa to another to also move this broadcast entry. Prior to this change broadcast entries were simple clonned ARP entries, that would be deleted once their timer expired since they would always be incomplete. With this change they are now persistant and identifiable with a new flag This version of the diff prevent a corruption reported by millert@ ok mikeb@, florian@
2014-09-03Make sure broadcast entries won't be freed by the arp timer so we canMartin Pieuchot
use them for address lookups. While here do let in_arpinput() overwrite local or broadcast entries. ok mikeb@, florian@
2014-08-27Nuke net.inet6.icmp6.rediraccept and allow redirects on interfacesFlorian Obser
with autoconf enabled. If one is doing SLAAC one does already trust link local icmp6 so the policy for icmp6 redirects should be the same. pointed out by & OK bluhm@; OK henning@
2014-08-26Revert the addition of broadcast addresses, it apparently also corruptsMartin Pieuchot
the tree. Found by millert@.
2014-08-23Move splnet() in in_ifinit() to protect less code that does notAlexander Bluhm
need it. OK mpi@
2014-08-19When a local route entry is added for an ifa having a broadcast address,Martin Pieuchot
also adds a broadcast entry flagged with RTF_BROADCAST. Prior to this change broadcast entries were simple clonned ARP entries, that would be deleted once their timer expired since they would always be incomplete. With this change they are now persistant and identifiable with a new flag. Committing early to be able to deal with any potential fallout before we start relying on this. ok florian@, mikeb@, henning@
2014-08-14No need for raw_cb.hMartin Pieuchot
2014-08-14Kill MRT_{ADD,DEL}_BW_UPCALL interfaces and the bandwidth monitoringMartin Pieuchot
code that comes with them. ok mikeb@, henning@
2014-08-11Use the RTF_LOCAL flag instead of abusing the RTF_LLINFO flag whenMartin Pieuchot
adding local route entries. This hack made sense when we didn't have the RTF_LOCAL flag, but since some months it is set on every local route.
2014-08-11Convert ARP llinfo allocation to pool(9).Martin Pieuchot
ok henning@, dlg@
2014-08-10Fix the length check for reinjected ICMP packets: sizeof(struct icmp) isLawrence Teo
28 but an ICMP packet can be as small as 8 bytes (e.g. an ICMP echo request packet with no payload), so check against ICMP_MINLEN instead. Prior to this fix, divert(4) would erroneously discard valid ICMP packets that are shorter than 20 bytes. ICMPv6 is not affected, so this change applies to ICMP over IPv4 only. ok florian@ henning@
2014-08-10Rename p_hdrlen to min_hdrlen to better reflect its purpose.Lawrence Teo
No object file change ok florian@ henning@
2014-07-22Fewer <netinet/in_systm.h> !Martin Pieuchot