master
Retire PR_MPSOCKET flag.
Remove unused parameter dst from art_get().
Move solock() down to sosetopt(). A part of standalone sblock() work. This movement required because buffers related SO_SND* and SO_RCV* socket options should be protected with sblock(). However, standalone sblock() has different lock order with solock() and `so_snd' and `so_rcv' buffers. At least sblock() for `so_snd' buffer will always be taken before solock() in the sosend() path.
use unsigned variables for things that we use as unsigned
Carefully prune sysctl nodes with #ifndef SMALL_KERNEL recover space lost to other bloaty software. ok bluhm
add bpfxattach for addding extra bpf interfaces to net interfaces
add a BPF_RND load location that provides a random value.
use a tailq for the global list of bpf_if structs.
we don't have to cast to caddr_t when calling m_copydata anymore.
spelling
ansi
88F7 is used by IEEE 1588 Precision Time Protocol
use nsecuptime instead of using nanouptime and doing a bunch of maths.
add $OpenBSD$ tags
add an AF_FRAME socket domain and an IFT_ETHER protocol family under it.
move hfsc to using nanoseconds for keeping times.
Provide pluggable queueing interface for pf
run ifq_barrier against all ifqs in if_detach, not just if_snd.
add net_sn_count() so things can ask how many softnet threads are running
Cache route per softnet thread with netstack.
remove struct arpreq from net/if_arp.h
Unlock IPCTL_MTUDISC case of ip_sysctl().
Retire switch(4) it never really was production ready and the OpenFlow API implemented is a deadend. OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@
Use constant sockaddr in route lookup.
Use struct refcnt for interface address reference counting. There was a crash due to use after free of the ifa although it is ref counted. As ifa_refcnt was a simple integer increment, there may be a path where multiple CPUs access it concurrently. So change to struct refcnt which is MP safe and provides dt(4) leak debugging. Link level address for IPsec enc(4) and various MPLS interfaces is special. There ifa is part of struct sc. Use refcount anyway and add a panic to detect use after free. bug report stsp@; OK mvs@
mention that the "flags" field in the enchdr is uses m_flags values (see mbuf.h)
etherbridge_map was way too clever, so simplify it.
remove unused inline function; ok dlg@
Extract ether type after completing length check.
add support for DLT_RAW on erspan(4) interfaces.
first or second coming, commie or not commie, one m in coming is sufficient ok claudio
attach multiple interface queues
remove unused ifmedia_list_add() ok miod@
Send without kernel lock
pflog(4) logs packet dropped by default rule with block.
Link pflog(4) instances to `pflog_ifs' list instead of allocating `pflogifs' array. This was done to prevent panics caused by internal malloc(9) limit.
replace task_del+taskq_barrier with taskq_del_barrier.
Rework pflowioctl() lock dances.
spelling ok jmc@ reads ok tb@
let's packets being sent out pppoe interfaces bypass queues and go straight onto the underlying interface.
Enable IPv6 AF for ppp(4)
Pass struct netstack to sec_input().
let pppoe data packets go through if_vinput instead of the pppoeinq.
provide network offloads between the kernel and userland again
Cache socket lock during TCP input.
Add missing #if's to fix build without bpf(4).
Shared net lock and socket lock are sufficient for vxlan.
typo: property -> properly
remove unneeded limits.h and errno.h includes
let drivers provide an ifiq specific bpf interface if they want.
common definitions for lldp protocol bits.
big update to pfsync to try and clean up locking in particular.
fix double words in comments feedback and ok jmc@ miod, ok millert@
Introduce M_PF type for pf(4) related memory allocations. Currently used M_TEMP and M_IFADDR types are unreasonable for that purpose. This dedicated statistics simplify the future pf(4) unlocking work by decreasing search area of possible memory leaks.
The current way to adjust pf(4) limits in pf.conf(5) is inconvenient. For example when ruleset uses more than 512 anchors (the current default limit) one would typically add 'set limit anchor 1024' to adjust the limit so the 'pf.conf(5)' gets processed. Unfortunately it does not work because limit gets changed with DIOCXCOMMIT which is too late. The pf.conf(5) fails to load the anchors to transaction, because the old lower limit is still in place. To fix it we must set the limit as soon as we parse 'set limit ...' option.
nat-to may fail to insert state due to conflict on chosen source port number. This is typically indicated by 'wire key attach failed on...' message when pf(4) debugging is enabled. The problem is caused by glitch in pf_get_sport() which fails to discover conflict in advance. In order to fix it we must also calculate toeplitz hash in pf_get_sport() to initialize look up key properly.
Get rid of unused `pr_hardlimit_warning', `pr_hardlimit_ratecap' and `pr_hardlimit_warning_last'.
correct indentation
pf: Count m_gethdr() failures in PFRES_MEMORY counter
Table persistent flag (PFR_TFLAG_PERSIST) won't get set by ioctl(2) operation if table exists already. The issue has been noticed by Giannis Kapetanakis (_at_) edu.physics.uoc.gr. Giannis noticed relayd(8) aborts unexpectedly when 'relay host' gets disabled by 'relayctl host dis ...' command. To understand what's going on we must look at the way how relayd(8) manages its firewall configuration. If relay-host 'example' is enabled relayd(8) inserts rule to anchor relayd/example. The rule looks somewhat like this: pass in from ... to ... rdr-to <example> When the rule gets inserted to pf(4) the table 'example' is created with flags: lumpy# pfctl -a relayd/example -vg -sT ----r-- example relayd/example r-flag indicates table is referred by rule only. In the next step relayd(8) creates and populates table example. It asks pf(4) to add a persistent flag (PFR_TFLAG_PERSIST), so table survives flush operation of relayd/example ruleset on behalf of 'relayctl host dis ...' command. relayd(8) exits via abort() when table is gone with disable operation.
Move atomically accessed `udpencap_enable' and `udpencap_port' sysctl(2) variables out of netlock.
remove prototypes with no matching function ok mpi@
Remove struct inpcb from in6_embedscope() parameters.
Move `encdebug' sysctl(2) variable out of netlock. It is idely used in the DPRINTF() macros, but disabled by default. We don't really need to enforce loading `encdebug' value each time, but at least it is consistent that way.
fix RBT_ENTRY in pf_state and pf_state_key
Paul Mackerras and the Australian National University have worked things out, and as a result, Paul now owns copyright on all these files, with the proper terms.
Add sizes for free() in zlib
Allow PPP interface to run in an rdomain and get a default route installed in the same routing domain
Make rn_match() and rn_lookup() safe to be used in parrallel, when different trees are manipulated:
Move IP{,V6}CTL_MULTIPATH cases of ip{,6}_sysctl() out of netlock. Add missing membar_producer() before `rtgeneration' update to invalidate route cache after ipmultipath changes.
Split union RT_gw into separate struct rtentry fields.
Don't include net/art.h in net/rtable.h instead let the two users include the file themselves. OK bluhm@ mpi@
ANSIfy function definitions
A space here, a space there. Soon we're talking real whitespace rectification.
add stoeplitz_eaddr, for getting a hash value from an ethernet address.
fix stoeplitz_hash_h32.
let lacp mode trunk cope with interfaces that don't report if_baudrate.
Add administrative options to LACP trunk implementation.
INITITIATION_COST -> INITIATION_COST
add RCS tags
Convert `t_lock', `r_keypair_lock' and `c_lock' rwlock(9)s to corresponding mutex(9)es.