| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
email.
|
|
|
|
|
|
| |
get userland notification for free.
ok blambert@, bluhm@
|
| |
|
|
|
|
| |
ok millert@, bluhm@
|
|
|
|
| |
ok mikeb@, krw@, bluhm@, tedu@
|
|
|
|
|
|
| |
functionnality instead of a mix of enable/disable.
ok bluhm@, jca@
|
|
|
|
|
|
|
|
|
|
| |
...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@
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
| |
ok deraadt@, naddy@
|
|
|
|
|
|
| |
receiving pointer -> index conversion. No functional change.
ok chrisz@, jca@, mikeb@, lteo@
|
|
|
|
|
|
| |
ever used to pass on uint32 (for ipsec). stop that madness and just pass
the uint32, 0 in all cases but the two that pass the ipsec flowinfo.
ok deraadt reyk guenther
|
|
|
|
| |
ok gcc & md5 (alas, no binary change)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of routing
table IDs, the following idiom is correct:
rtableid = rdomain
But to get the routing domain ID corresponding to a given routing table
ID, you must call rtable_l2(9).
claudio@ likes it, ok mikeb@
|
|
|
|
|
|
|
|
|
| |
Rename and document rt_timer_count() into rt_timer_queue_count() to
be consistent with the other functions. Remove unused argument from
rt_timer_queue_destroy(), clean the definitions and finally use the
same order in NAME and DESCRIPTION as requested by jmc@.
ok henning@
|
|
|
|
|
|
|
|
|
|
| |
In case imcp_reflect() is called without a given source address
do not try to find a matching address by iterating over a global
list and always use the routing table.
This breaks icmp echo replies (and maybe more) on machines with >1 ip
"reverting is safer and make it clear that this function needs more love"
ok florian@, mpi@ for the revert
|
|
|
|
| |
ok mpi@ millert@
|
|
|
|
|
|
|
| |
do not try to find a matching address by iterating over a global
list and always use the routing table.
Idea from claudio@, moral support from henning@, ok mikeb@
|
|
|
|
| |
OK benno@ deraadt@
|
| |
|
| |
|
|
|
|
|
|
| |
it is needed and the lower parts of the stack will take care of it.
fixes a cksum bug in a rather constructed case and is just the right thing
to do now. ok mpi naddy
|
|
|
|
|
|
| |
just call ip_stripoptions(). Remove an unneeded parameter and
adjust the ip length in ip_stripoptions().
from FreeBSD; OK deraadt@ henninh@ lteo@
|
|
|
|
|
|
|
|
| |
network to presentation format to inet_ntop().
The few remaining functions will be soon converted.
ok mikeb@, deraadt@ and moral support from henning@
|
|
|
|
|
| |
making the code the same as netinet4 along the way.
ok bluhm phessler
|
|
|
|
|
|
| |
Still some important missing pieces, and this is not yet enabled.
OK bluhm@
|
|
|
|
|
|
|
|
|
|
|
| |
the moment because there might be at most one caller at a time, it
wont be so as soon as this part of the network stack is run in
parallel.
While here also reduce the difference with the icmp6 code adding a
redirect route.
ok mikeb@
|
|
|
|
|
|
|
|
|
|
|
|
| |
of incoming IPv4 packets with the SSRR or LSRR header option in
a m_tag rather than in a single static entry.
Use a new m_tag type, PACKET_TAG_SRCROUTE, for this and bump
PACKET_TAG_MAXSIZE accordingly.
Adapted from FreeBSD r135274 with inputs from bluhm@.
ok bluhm@, mikeb@
|
| |
|
|
|
|
|
|
| |
to pass the destination address of the route to clone.
ok markus@, mikeb@
|
|
|
|
|
|
|
|
|
|
|
| |
in4_cksum() instead of in_cksum(). This gets rid of the clunky
m_data/m_len dance, which was described as "disgusting" in the original
comments. :)
Tested on a small MPLS test network (since icmp_do_exthdr() is currently
only used by MPLS code, specifically mpls_do_error()).
ok bluhm henning mikeb
|
|
|
|
|
|
|
| |
consumed by icmp_input(). As an exception, control packets that
belong to a connection to a local socket must go to pr_ctlinput().
Add a switch over the ICMP type to handle that.
OK markus@ henning@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clunky m_data/m_len dance needed by in_cksum().
Tested on amd64, hppa, i386, loongson, macppc, sgi, and sparc64.
Thanks to blambert@, bluhm@, and henning@ for help and feedback;
abieber@ for testing this diff independently on macppc; krw@ for access
to his hppa, sgi, and sparc64 test systems at t2k13; nick@ for helping
me figure out Ken's hppa so that I can test this diff. :)
ok blambert bluhm henning mikeb
|
|
|
|
|
|
|
| |
gobals used only in this file and explain that the printf/debug
variable must be settable by ddb.
ok henning@, sthen@
|
|
|
|
| |
declare them once in their corresponding header file.
|
|
|
|
|
|
|
| |
move them to the corresponding header with an appropriate comment if
necessary.
ok guenther@
|
|
|
|
|
|
|
| |
the spl call in the icmp case may be too aggressive, but better safe
than sorry
ok claudio@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the issue in our kernel was the broadcast address calculated on the /31
caused a ton of checks for use of broadcast addresses to kick in and
prevent one of the two addresses on the /31 from being used.
this diff basically detects if a /31 has been configured and doesnt
configure a broadcast address for it, which makes the ips usable
for normal traffic.
i wrote this so i could interoperate with "carrier" network gear
better, and sthen wants it so he can conserve address space use.
the further special casing of broadcast address handling was from claudio@
ok claudio@ markus@ sthen@ henning@
|
|
|
|
|
| |
Same logic is already implemented in netinet6
OK henning@ deraadt@
|
|
|
|
|
|
|
| |
allows other users (like MPLS) use this function instead of rolling a own
version. Implement icmp_do_exthdr() to attach an RFC 4884 extension header
to an ICMP error produced by icmp_do_error().
"best to get it in." deraadt@
|
|
|
|
|
|
|
| |
the callback functions. This fixes a problem where dynamic routes in
different tables would not get deleted because the callback was doing
the remove on the wrong table.
OK henning@
|
|
|
|
|
|
|
|
|
|
|
|
| |
and make it possible to bind sockets (including listening sockets!)
to rtables and not just rdomains. This changes the name of the
system calls, socket option, and ioctl. After building with this
you should remove the files /usr/share/man/cat2/[gs]etrdomain.0.
Since this removes the existing [gs]etrdomain() system calls, the
libc major is bumped.
Written by claudio@, criticized^Wcritiqued by me
|
|
|
|
|
|
|
|
| |
accept flags for report and nocloning. Move the rtableid into struct route
(with a minor twist for now) and make a few more codepathes rdomain aware.
Appart from the pf.c and route.c bits the diff is mostly mechanical.
More to come...
OK michele, henning
|
|
|
|
|
|
| |
sysctl.h was reliant on this particular include, and many drivers included
sysctl.h unnecessarily. remove sysctl.h or add proc.h as needed.
ok deraadt
|
|
|
|
|
|
|
|
| |
is valid and usable (reject and blackholes are not conidered usable).
TCP has this nasty behaviour to clone routes to disable PMTU and this combined
with dynamic routing resulted in dead sessions when there was a default reject
route installed.
OK henning@, sthen@
|
|
|
|
|
|
|
|
| |
needed so that the route and inp lookups done in TCP and UDP know where
to look. Additionally in_pcbnotifyall() and tcp_respond() got a rdomain
argument as well for similar reasons. With this tcp seems to be now
fully rdomain save and no longer leaks single packets into the main domain.
Looks good markus@, henning@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tables on top of a rdomain) but until now our code was a crazy mix so that
it was impossible to correctly use rtables in that case. Additionally pf(4)
only knows about rtables and not about rdomains. This is especially bad when
tracking (possibly conflicting) states in various domains.
This diff fixes all or most of these issues. It adds a lookup function to
get the rdomain id based on a rtable id. Makes pf understand rdomains and
allows pf to move packets between rdomains (it is similar to NAT).
Because pf states now track the rdomain id as well it is necessary to modify
the pfsync wire format. So old and new systems will not sync up.
A lot of help by dlg@, tested by sthen@, jsg@ and probably more
OK dlg@, mpf@, deraadt@
|
|
|
|
|
|
|
|
|
| |
changed with a sysctl, so note it in sysctl.conf. v6 needs further
testing following discussions on the tech mailing list; rainer@ points
out possible interactions with neighbour discovery which need to be
investigated first.
"go ahead on the v4 part" deraadt@
|
|
|
|
|
|
|
|
|
| |
alternate routing table and separate them from other interfaces in distinct
routing tables. The same network can now be used in any doamin at the same
time without causing conflicts.
This diff is mostly mechanical and adds the necessary rdomain checks accross
net and netinet. L2 and IPv4 are mostly covered still missing pf and IPv6.
input and tested by jsg@, phessler@ and reyk@. "put it in" deraadt@
|
|
|
|
| |
key stuff.
|