vkernel/vke: Add missing semicolon.
ifmedia: Port SIOCGIFXMEDIA from FreeBSD- Max # of media type is 255 on DragonFly; additional bit was used.- Description of the media is changed to ###baseXX instead of ###Base-XX; it is more co
ifmedia: Port SIOCGIFXMEDIA from FreeBSD- Max # of media type is 255 on DragonFly; additional bit was used.- Description of the media is changed to ###baseXX instead of ###Base-XX; it is more consistent with what we already have.- Fix some media types in vke(4), e.g. 1000baseT <half-duplex> is actually never deployed anywhere.- Use ULL consistently in bce(4) for the if_baudrate.- Setup if_baudrate properly for re(4).- Fix typo in mii(4).- Handle SIOCGIFXMEDIA in re(4) (for 2500baseT) and vke(4) (for all newly added types).- Bump kernel version.
show more ...
vkernel: Adjust vke(4) for the if_media.h changes (fixes vkernel build).
vkernel: Prevent clang optimizing out the traps.Turns out clang removes non volatile null-pointers. Prevent that.
vkernel - Fix races in if_vke.c* Fix races in if_vke.c, several cpu_lfence() calls were in the wrong place.
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.The main reason is that our having to use the MB_WAIT and MB_DONTWAITflags was a recurring issue when porting drivers from FreeBSD
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.The main reason is that our having to use the MB_WAIT and MB_DONTWAITflags was a recurring issue when porting drivers from FreeBSD becauseit tended to get forgotten and the code would compile anyway with thewrong constants. And since MB_WAIT and MB_DONTWAIT ended up as ocflagsfor an objcache_get() or objcache_reclaimlist call (which use M_WAITOKand M_NOWAIT), it was just one big converting back and forth with somesanitization in between.This commit allows M_* again for the mbuf functions and keeps thesanitizing as it was before: when M_WAITOK is among the passed flags,objcache functions will be called with M_WAITOK and when it is absent,they will be called with M_NOWAIT. All other flags are scrubbed by theMB_OCFLAG() macro which does the same as the former MBTOM().Approved-by: dillon
inet/inet6: Merge SIOC[ADG]LIFADDR into {in,in6}_control_internalAnd remove the socket parameter from {in,in6}_control APIs.This prepares to make ifnet glbal variable MPSAFE.
vkernel: Add rudimentary media support to if_vke
vkernel - Support BPF for if_vke.* if_vke now supports tcpdump in both directions instead of just one direction.
kernel: make pktinfo and cpuid native to ip_input()In order to remove ether_input_pkt(), switch the prototypeof if_input() and adjust all callers. While there, consolidatethe style of the invoke
kernel: make pktinfo and cpuid native to ip_input()In order to remove ether_input_pkt(), switch the prototypeof if_input() and adjust all callers. While there, consolidatethe style of the invoke.Suggested and reviewed by: sephe
vkernel - Fix frustrating VKE mac address bug* Fix a very frustrating bug where VKE would sometimes ignore packets. It turns out that the default randomly-generated ether mac address was not be
vkernel - Fix frustrating VKE mac address bug* Fix a very frustrating bug where VKE would sometimes ignore packets. It turns out that the default randomly-generated ether mac address was not being properly zero'd, leaving uninitialized locations in bytes 0 and 1 which would sometimes make the MAC look like a multicast address.Reported-by: Frustrated tuxilo
ifq: Remove the unused parameter 'mpolled' from ifq dequeue interfaceThe ifq_poll() -> ifq_dequeue() model is not MPSAFE, and mpolled hasnot been used, i.e. set to NULL, for years; time to let it
ifq: Remove the unused parameter 'mpolled' from ifq dequeue interfaceThe ifq_poll() -> ifq_dequeue() model is not MPSAFE, and mpolled hasnot been used, i.e. set to NULL, for years; time to let it go.
vke(4) - Use M_ZERO for tx/rx ring allocation.Pointed-out-by: sephe
vke(4) - Add a tunable to set the max number of mbuf clusters per device.* Also cap it to 256 mbuf clusters by default.
vke(4) - Dynamic mbuf cluster allocation.* Calculate the number of mbuf clusters per ring buffer based on the total amount available in the system.* Up to 50% of the total mbuf clusters is shar
vke(4) - Dynamic mbuf cluster allocation.* Calculate the number of mbuf clusters per ring buffer based on the total amount available in the system.* Up to 50% of the total mbuf clusters is shared among all the vke devices configured in a vkernel.
vke(4) - Show backing tap only if one was used.
vkernel/vke: Comment out 'ifp', just like the code that uses it.
vkernel - Fix if_vke* The vkernel device driver threads are cothreads and do not have any per-cpu data.* Fix recent stat counter changes which attempted to access per-cpu data from a cothread
vkernel - Fix if_vke* The vkernel device driver threads are cothreads and do not have any per-cpu data.* Fix recent stat counter changes which attempted to access per-cpu data from a cothread. This fixes a vkernel SIGILL by virtue of the trap() code being called recursively on trap's own attempt to access mycpu, until its stack runs out.
vkernel - Allow setting MAC addresses from within the command line. In order to be able to specify the MAC address we want to use for every interface within the vkernel, an extra argument has
vkernel - Allow setting MAC addresses from within the command line. In order to be able to specify the MAC address we want to use for every interface within the vkernel, an extra argument has been added to the -I option. Example: ./kernel -r root.img -m 256m -I auto=aa:bb:cc:dd:ee:ff
if: Per-cpu ifnet/ifaddr statistics, step 1/3Wrap ifnet/ifaddr stats updating, setting and extraction into macros;ease upcoming changes.
if: Multiple TX queue support step 1 of many; introduce ifaltq subqueuePut the plain queue information, e.g. queue header and tail, serializer,packet staging scoreboard and ifnet.if_start schedule
if: Multiple TX queue support step 1 of many; introduce ifaltq subqueuePut the plain queue information, e.g. queue header and tail, serializer,packet staging scoreboard and ifnet.if_start schedule netmsg etc. intoits own structure (subqueue). ifaltq structure could have multiple ofsubqueues based on the count that drivers can specify.Subqueue's enqueue, dequeue, purging and states updating are protectedby the subqueue's serializer, so for hardwares supporting multiple TXqueues, contention on queuing operation could be greatly reduced.The subqueue is passed to if_start to let the driver know which hardwareTX queue to work on. Only the related driver's TX queue serializer willbe held, so for hardwares supporting multiple TX queues, contention ondriver's TX queue serializer could be greatly reduced.Bunch of ifsq_ prefixed functions are added, which is used to performvarious operations on subqueues. Commonly used ifq_ prefixed functionsare still kept mainly for the drivers which do not support multiple TXqueues (well, these functions also ease the netif/ convertion in thisstep :).All of the pseudo network devices under sys/net are converted to use thenew subqueue operation. netproto/802_11 is converted too. igb(4) isconverted to use the new subqueue operation, the rest of the networkdrivers are only changed for the if_start interface modification.For ALTQs which have packet scheduler enabled, only the first subqueueis used (*).(*) Whether we should utilize multiple TX queues if ALTQ's packet scheduleris enabled is quite questionable. Mainly because hardware's multiple TXqueue packet dequeue mechanism could have negative impact on ALTQ's packetscheduler's decision.
if: Move IFF_OACTIVE bit into ifaltq; prepare multiple TX queues supportifaltq.altq_hw_oactive is now used to record that NIC's TX queue is full.IFF_OACTIVE is removed from kernel. User space IFF
if: Move IFF_OACTIVE bit into ifaltq; prepare multiple TX queues supportifaltq.altq_hw_oactive is now used to record that NIC's TX queue is full.IFF_OACTIVE is removed from kernel. User space IFF_OACTIVE is kept forcompability.ifaltq.altq_hw_oactive should not be accessed directly. Following set offunctions are provided and should be used:ifq_is_oactive(ifnet.if_snd) - Whether NIC's TX queue is full or notifq_set_oactive(ifnet.if_snd) - NIC's TX queue is fullifq_clr_oactive(ifnet.if_snd) - NIC's TX queue is no longer full
Revert "if_vke"This reverts commit 8e3ef667d37ca26db190779e67073d6a16b47b88.Wrong master branch pushed.
if_vke
kernel: Remove newlines from the panic messages that have one.panic() itself will add a newline.
12