#
3bf0166f |
| 19-Feb-2018 |
dlg <dlg@openbsd.org> |
tunneldf needs ifr_df
|
#
9798906b |
| 10-Feb-2018 |
florian <florian@openbsd.org> |
Implement RFC 7217: "A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration."
"An IPv6 address configured using this method is stable within
Implement RFC 7217: "A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration."
"An IPv6 address configured using this method is stable within each subnet, but the corresponding Interface Identifier changes when the host moves from one network to another. This method is meant to be an alternative to generating Interface Identifiers based on hardware addresses."
OK naddy, sthen
show more ...
|
#
beb8b0dd |
| 16-Jan-2018 |
mpi <mpi@openbsd.org> |
Recycle IFF_NOTRAILERS into IFF_STATICARP and document ownerhsip of IFF* flags.
inputs from jmc@, ok bluhm@, visa@
|
#
a6a7f803 |
| 21-Dec-2017 |
dlg <dlg@openbsd.org> |
prototype if_attach_iqueues so drivers can configure multiple iqs.
|
#
13df67f6 |
| 09-Nov-2017 |
tb <tb@openbsd.org> |
The cmd argument of ifconf() has been unused since COMPAT_LINUX was purged. Remove it and move the prototype to if.c since ifconf() is not used outside of this file.
ok mpi
|
#
93865884 |
| 31-Oct-2017 |
sashan <sashan@openbsd.org> |
- add one more softnet taskq NOTE: code still runs with single softnet task. change definition of SOFTNET_TASKS in net/if.c, if you want to have more than one softnet task
OK mpi@, OK phessler@
|
#
f419757a |
| 24-Jan-2017 |
krw <krw@openbsd.org> |
A space here, a space there. Soon we're talking real whitespace rectification.
|
#
722eb25e |
| 24-Jan-2017 |
dlg <dlg@openbsd.org> |
add support for multiple transmit ifqueues per network interface.
an ifq to transmit a packet is picked by the current traffic conditioner (ie, priq or hfsc) by providing an index into an array of i
add support for multiple transmit ifqueues per network interface.
an ifq to transmit a packet is picked by the current traffic conditioner (ie, priq or hfsc) by providing an index into an array of ifqs. by default interfaces get a single ifq but can ask for more using if_attach_queues().
the vast majority of our drivers still think there's a 1:1 mapping between interfaces and transmit queues, so their if_start routines take an ifnet pointer instead of a pointer to the ifqueue struct. instead of changing all the drivers in the tree, drivers can opt into using an if_qstart routine and setting the IFXF_MPSAFE flag. the stack provides a compatability wrapper from the new if_qstart handler to the previous if_start handlers if IFXF_MPSAFE isnt set.
enabling hfsc on an interface configures it to transmit everything through the first ifq. any other ifqs are left configured as priq, but unused, when hfsc is enabled.
getting this in now so everyone can kick the tyres.
ok mpi@ visa@ (who provided some tweaks for cnmac).
show more ...
|
#
99bf4b5f |
| 23-Jan-2017 |
mpi <mpi@openbsd.org> |
Flag pseudo-interfaces as such in order to call add_net_randomness() only once per packet.
Fix a regression introduced when if_input() started to be called by every pseudo-driver.
ok claudio@, dlg@
|
#
89ac2e29 |
| 23-Jan-2017 |
dlg <dlg@openbsd.org> |
i botched the copyout to ifr->ifr_data in SIOCGIFDATA.
this lets pflogd run again.
rename if_data() to if_getdata() while here to make grepping for things less noisy.
reported by jsg@ worked throu
i botched the copyout to ifr->ifr_data in SIOCGIFDATA.
this lets pflogd run again.
rename if_data() to if_getdata() while here to make grepping for things less noisy.
reported by jsg@ worked through with deraadt@
show more ...
|
#
6a4f4faa |
| 23-Jan-2017 |
dlg <dlg@openbsd.org> |
merge the ifnet and ifqueue stats together when userland wants them.
a new if_data() function takes a pointer to ifnet and merges its if_data and ifq statistics. it takes the ifq mutex around the re
merge the ifnet and ifqueue stats together when userland wants them.
a new if_data() function takes a pointer to ifnet and merges its if_data and ifq statistics. it takes the ifq mutex around the reads of the ifq stats so they get a consistent copy.
the ifnet and ifq stats are merged because some parts of the stack still update the ifnet counters.
ok visa@ (on an earlier diff) mpi@ claudio@
show more ...
|
#
06ab4272 |
| 12-Dec-2016 |
mpi <mpi@openbsd.org> |
Remove most of the splsoftnet() recursions related to cloned interfaces.
inputs and ok bluhm@
|
#
7887e009 |
| 27-Oct-2016 |
dlg <dlg@openbsd.org> |
add a new pool for 2k + 2 byte (mcl2k2) clusters.
a certain vendor likes to make chips that specify the rx buffer sizes in kilobyte increments. unfortunately it places the ethernet header on the sta
add a new pool for 2k + 2 byte (mcl2k2) clusters.
a certain vendor likes to make chips that specify the rx buffer sizes in kilobyte increments. unfortunately it places the ethernet header on the start of the rx buffer, which means if you give it a mcl2k cluster, the ethernet header will not be ETHER_ALIGNed cos mcl2k clusters are always allocated on 2k boundarys (cos they pack into pages well). that in turn means the ip header wont be aligned correctly.
the current workaround on these chips has been to let non-strict alignment archs just use the normal 2k cluster, but use whatever cluster can fit 2k + 2 on strict archs. that turns out to be the 4k cluster, meaning we waste nearly 2k of space on every packet.
properly aligning the ethernet header and ip headers gives a performance boost, even on non-strict archs.
show more ...
|
#
aa20b23f |
| 04-Sep-2016 |
reyk <reyk@openbsd.org> |
Move code to change the rdomain of an interface from the ioctl switch case to a new function if_setrdomain().
OK mpi@ henning@
|
#
26334ce3 |
| 03-Sep-2016 |
reyk <reyk@openbsd.org> |
Add support for a multipoint-to-multipoint mode in vxlan(4). In this mode, vxlan(4) must be configured to accept any virtual network identifier with "vnetid any" and added to a bridge(4) or switch(4
Add support for a multipoint-to-multipoint mode in vxlan(4). In this mode, vxlan(4) must be configured to accept any virtual network identifier with "vnetid any" and added to a bridge(4) or switch(4). This way the driver will dynamically learn the tunnel endpoints and their vnetids for the responses and can be used to dynamically bridge between VXLANs. It is also being used in combination with switch(4) and the OpenFlow tunnel classifiers.
With input from yasuoka@ goda@ OK deraadt@ dlg@
show more ...
|
#
a5e12720 |
| 10-Jun-2016 |
vgross <vgross@openbsd.org> |
Add the "llprio" field to struct ifnet, and the corresponding keyword to ifconfig.
"llprio" allows one to set the priority of packets that do not go through pf(4), as the case is for arp(4) or bpf(4
Add the "llprio" field to struct ifnet, and the corresponding keyword to ifconfig.
"llprio" allows one to set the priority of packets that do not go through pf(4), as the case is for arp(4) or bpf(4).
ok sthen@ mikeb@
show more ...
|
#
66d911f4 |
| 02-Mar-2016 |
dlg <dlg@openbsd.org> |
provide generic ioctls for managing an interfaces parent
in the future this will subsume the individual vlandev, carpdev, pppoedev, foodev options for things like vlan, carp, pppoe, etc.
inspired b
provide generic ioctls for managing an interfaces parent
in the future this will subsume the individual vlandev, carpdev, pppoedev, foodev options for things like vlan, carp, pppoe, etc.
inspired by vnetid
ok mpi@ jmatthew@
show more ...
|
#
c6b0ddf3 |
| 05-Dec-2015 |
deraadt <deraadt@openbsd.org> |
avoid an ugly wrap in a comment
|
#
06afa45f |
| 03-Dec-2015 |
dlg <dlg@openbsd.org> |
rework if_start to allow nics to provide an mpsafe start routine.
existing start routines will still be called under the kernel lock and at IPL_NET.
mpsafe start routines will be serialised so only
rework if_start to allow nics to provide an mpsafe start routine.
existing start routines will still be called under the kernel lock and at IPL_NET.
mpsafe start routines will be serialised so only one instance of each interfaces function will be running in the kernel at any point in time. this guarantees packets will be dequeued in order, and the start routines dont have to lock against themselves because if_start does it for them.
the code to do that is based on the scsi runqueue code.
this also provides an if_start_barrier() function that should wait until any currently running instances of if_start have finished.
a driver can opt in to the mpsafe if_start call by doing the following:
1. setting ifp->if_xflags = IFXF_MPSAFE 2. only calling if_start() instead of its own start routine 3. clearing IFF_RUNNING before calling if_start_barrier() on its way down 4. only using IFQ_DEQUEUE (not ifq_deq_begin/commit/rollback)
to simplify the implementation the tx mitigation code has been removed.
tested by several ok mpi@ jmatthew@
show more ...
|
#
648b7951 |
| 20-Nov-2015 |
mpi <mpi@openbsd.org> |
Keep if_ref() private, if_get() is what you want to use before if_put().
The thread detaching an interface will sleep until all references to this interface have been released. So we decided to onl
Keep if_ref() private, if_get() is what you want to use before if_put().
The thread detaching an interface will sleep until all references to this interface have been released. So we decided to only keep references for a short period of time.
Keeping if_ref() private will hopefully help preserve this goal as long as it makes sense.
Calling if_get()/if_put() in the same function also allows us to make use of static analysis tools (thanks jsg@!) to catch our errors.
ok dlg@
show more ...
|
#
dcbaedb7 |
| 24-Oct-2015 |
reyk <reyk@openbsd.org> |
Add pair(4), a vether-based virtual Ethernet driver to interconnect rdomains and bridges on the local system. This can be used to route through local rdomains, to create L2 devices (like trunks) bet
Add pair(4), a vether-based virtual Ethernet driver to interconnect rdomains and bridges on the local system. This can be used to route through local rdomains, to create L2 devices (like trunks) between them, and many other things.
Discussed with many, with input from mpi@ OK sthen@ phessler@ yasuoka@ mikeb@
show more ...
|
#
0d357b6b |
| 23-Oct-2015 |
claudio <claudio@openbsd.org> |
Introduce a new sysctl NET_RT_IFNAMES that returns only ifnames to ifindex mappings. This will be used by if_nameindex(3), if_nametoindex(3) and if_indextoname(3) soon to fix the issues in pledge bec
Introduce a new sysctl NET_RT_IFNAMES that returns only ifnames to ifindex mappings. This will be used by if_nameindex(3), if_nametoindex(3) and if_indextoname(3) soon to fix the issues in pledge because of inet6 link local addressing. OK mpi@ benno@ deraadt@ The libc version will follow soon so better start updating your kernels
show more ...
|
#
c9b0da98 |
| 23-Oct-2015 |
dlg <dlg@openbsd.org> |
tweak the vnetid so it can be optional and therefore cleared/deleted.
the abstract vnetid is promoted to a uin32_t, and adds a SIOCDVNETID ioctl so it can be cleared.
this is all because i set an a
tweak the vnetid so it can be optional and therefore cleared/deleted.
the abstract vnetid is promoted to a uin32_t, and adds a SIOCDVNETID ioctl so it can be cleared.
this is all because i set an assignment on implementing a virtual network interface and the students got confused when vnetid 0 didnt show up in ifconfig output.
the vnetid in the vxlan(4) protocol is optional, but the current code confuses 0 with no vnetid being set. this makes it clear.
ok reyk@ who also simplified my diff
show more ...
|
#
40f7dcd7 |
| 05-Oct-2015 |
uebayasi <uebayasi@openbsd.org> |
Add ifi_oqdrops and its alias to struct if_data.
Necessary bumps in Ports will be handled by sthen@.
OK mpi@ dlg@
|
#
8bd84916 |
| 27-Sep-2015 |
stsp <stsp@openbsd.org> |
Add if_setlladdr(), factored out from ifioctl(). Will be used by iwm(4) soon. With suggestions from tedu@ and guenther@ ok kettenis@
|