SlideShare a Scribd company logo
New ifnet(9) KPI
Gleb Smirnoff
glebius@FreeBSD.org
BSDCan 2015
Ottawa
June 11, 2015
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 1 / 24
Introduction
project wiki page and code
https://wiki.freebsd.org/projects/ifnet
svn+ssh://svn.freebsd.org/base/projects/ifnet
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 2 / 24
Introduction
struct ifnet
Glue between a driver and the stack
Used to be embedded into driver softc, now softc and
ifnet has pointers to each other
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 3 / 24
Introduction
struct ifnet
Glue between a driver and the stack
Used to be embedded into driver softc, now softc and
ifnet has pointers to each other
At attach time driver and stack fill in the structure
At run time driver changes different flags
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 3 / 24
Introduction
Why changes are needed
Extension of the struct ifnet could require
recompilation of all drivers
Editing struct ifnet could require patching all drivers
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 4 / 24
opaque ifnet
The opaque ifnet
Code snippet 1: net/if.h:
typedef struct i f n e t ∗ if_t ;
Code snippet 2: net/if_var.h:
struct i f n e t {
/∗ actual s t r u c t u r e d e f i n i t i o n ∗/
};
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 5 / 24
opaque ifnet
The opaque ifnet
Easy way: substitute any access to struct ifnet fields
with a function
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 6 / 24
opaque ifnet
The opaque ifnet
Easy way: substitute any access to struct ifnet fields
with a function
Hard way: design new KPI
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 6 / 24
new KPI what’s in struct ifnet?
what’s in struct ifnet?
driver
access
instance
specific
if_flags, if_capenable, if_mtu R y
link state, baudrate RW y
counters W y
if_capabilities, if_tso* W once y/n
address lists R y
driver name, if_clone W once n
methods W once n
if_type, dlt_type, header len W once n
if_media W once * y/n
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 7 / 24
new KPI what’s in struct ifnet?
what’s else in struct ifnet?
The stuff the driver shouldn’t be interested at
Layer 2 softc: if_l2com
Address family softcs: if_afdata[AF_MAX]
Bunch of other softcs: if_lagg, if_carp, if_netmap,
etc
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 8 / 24
new KPI what’s in struct ifnet?
what’s else in struct ifnet?
The stuff the driver shouldn’t be interested at
Layer 2 softc: if_l2com
Address family softcs: if_afdata[AF_MAX]
Bunch of other softcs: if_lagg, if_carp, if_netmap,
etc
This all can be generalized!
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 8 / 24
new KPI allocation and attachment
new if_attach()
if_alloc() if_attach(if_attach_args *args)
sleeps, doesn’t fail (save name conflict)
if_attach_args is versioned
if_attach_args contains all the “W once” stuff
ifdriver pointer
softc pointer
lladdr
supported media list
capabilities, TSO limits
initial values: MTU, capenable, baudrate, etc
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 9 / 24
new KPI allocation and attachment
ifdriver, ifops
struct ifdriver is static in the driver, storing all
non-instance specific stuff
Interface methods in special structure ifops
Name, type, DLT, headerlength
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 10 / 24
new KPI allocation and attachment
ifmedia
Code snippet 3: net/if_media.h:
typedef int if_media_t ;
Drivers declare static/dynamic array of if_media_t,
pointed to from if_attach_args
Drivers declare if_media_change_t,
if_media_status_t in ifops
Implementation opaque and private to if_media.c
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 11 / 24
new KPI allocation and attachment
ifmedia + miibus
miibus(4) is completely ifnet(9) agnostic
mii_attach() allocates pointer to if_media_t array,
to be used later in if_attach_args
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 12 / 24
new KPI method changes
if_init is no longer a method, becomes static function
if_poll for polling(4)
if_start
if_transmit doesn’t m_freem() in case of error
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 13 / 24
new KPI runtime modified data
if_flags, if_capenable, if_mtu (R,
instance specific)
if_ioctl method is the only channel to modify the
values
stack does sanity checking
driver may refuse new value
if driver accepts value, it may cache it
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 14 / 24
new KPI runtime modified data
if_drv_flags
IFF_DRV_OACTIVE goes away together with
if_start and generic queue
IFF_DRV_RUNNING goes to driver softc, protected
by driver lock
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 15 / 24
new KPI runtime modified data
link state, baudrate
void if_setbaudrate ( if_t , uint64_t ) ;
void if_link_state_change ( if_t , int ) ;
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 16 / 24
new KPI runtime modified data
counters
if_inc_counter() is already in head
Driver is 100% resposible for the counters
TX counters are updated on TX completion, not on
enqueue
Use if_inc_txcounters() for TX update
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 17 / 24
new KPI runtime modified data
traversing address lists
typedef void
ifaddr_cb_t ( void ∗ , struct sockaddr ∗ ,
struct sockaddr ∗ , struct sockaddr ∗);
typedef void
ifmaddr_cb_t ( void ∗ , struct sockaddr ∗);
void if_foreach_addr ( if_t , ifaddr_cb_t ,
void ∗);
void if_foreach_maddr ( if_t , ifmaddr_cb_t ,
void ∗);
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 18 / 24
new KPI special considerations
net80211 drivers
No ifnet layer in the driver
Task is 50% done
Will be committed to head separately
https://wiki.freebsd.org/projects/ifnet/net80211
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 19 / 24
new KPI special considerations
drivers that do if_start
That’s 80-90% of all legacy drivers
if_start and struct ifqueue go away
driver opts-in for a generic queue in if_attach
stack provides: if_snd_len(), if_snd_enqueue(),
if_snd_dequeue() and if_snd_prepend()
driver’s if_transmit is a short copy&paste
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 20 / 24
new KPI special considerations
lagg(4)
now lagg(4) hijacks if_transmit of an interface
it will hijack ifops
ifops can be stacked, like VOPs
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 21 / 24
new KPI special considerations
ALTQ
now ALTQ works on top of ifqueue
it will hijack ifops
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 22 / 24
new KPI scope of work
scope of work
There are > 200 drivers to be converted
Only 16 has been converted so far
Conversion of typical 100Mbit driver takes 1 hour
Usually driver is reduced by 100 LOC
https://wiki.freebsd.org/projects/ifnet/progress
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 23 / 24
new KPI scope of work
open tasks
Better generic queueing/transmit code?
ALTQ
lagg(4)
VIMAGE
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 24 / 24
Conclusion
Your feedback & help is needed!
Reviewing
Criticizing, proposing better KPIs
Converting drivers
Testing
Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 25 / 24

More Related Content

PDF
lwref: insane idea on reference counting
PDF
New sendfile
PDF
BuildKitでLazy Pullを有効にしてビルドを早くする話
PDF
HOW 2019: A complete reproducible ROOT environment in under 5 minutes
PDF
PyHEP 2018: Tools to bind to Python
PDF
PEARC17: Modernizing GooFit: A Case Study
PDF
[COSCUP 2021] A trip about how I contribute to LLVM
PDF
Open MPI State of the Union X SC'16 BOF
lwref: insane idea on reference counting
New sendfile
BuildKitでLazy Pullを有効にしてビルドを早くする話
HOW 2019: A complete reproducible ROOT environment in under 5 minutes
PyHEP 2018: Tools to bind to Python
PEARC17: Modernizing GooFit: A Case Study
[COSCUP 2021] A trip about how I contribute to LLVM
Open MPI State of the Union X SC'16 BOF

What's hot (20)

PDF
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
PDF
Debugging node in prod
PPTX
Understanding eBPF in a Hurry!
PDF
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
PDF
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
PDF
Go 1.8 Release Party
PDF
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
PDF
Global Interpreter Lock: Episode I - Break the Seal
PPTX
Streams for the Web
PDF
Lopug docker end_of_distro
PPTX
PDF
P4, EPBF, and Linux TC Offload
PDF
Golang execution modes
PDF
p4alu: Arithmetic Logic Unit in P4
PDF
GIT: Content-addressable filesystem and Version Control System
PPTX
Fun with Github webhooks: verifying Signed-off-by
PDF
[COSCUP 2020] How to use llvm frontend library-libtooling
PDF
Profiling and optimizing go programs
PDF
HCQC : HPC Compiler Quality Checker
PDF
Brief introduction to kselftest
Stargz Snapshotter: イメージのpullを省略してcontainerdでコンテナを高速に起動する
Debugging node in prod
Understanding eBPF in a Hurry!
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Tracing Software Build Processes to Uncover License Compliance Inconsistencies
Go 1.8 Release Party
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
Global Interpreter Lock: Episode I - Break the Seal
Streams for the Web
Lopug docker end_of_distro
P4, EPBF, and Linux TC Offload
Golang execution modes
p4alu: Arithmetic Logic Unit in P4
GIT: Content-addressable filesystem and Version Control System
Fun with Github webhooks: verifying Signed-off-by
[COSCUP 2020] How to use llvm frontend library-libtooling
Profiling and optimizing go programs
HCQC : HPC Compiler Quality Checker
Brief introduction to kselftest
Ad

Similar to new ifnet(9) KPI for FreeBSD network stack (20)

PDF
FreeBSD and Drivers
PDF
Kernel Recipes 2019 - Metrics are money
PDF
End nodes in the Multigigabit era
PDF
International Journal of Computational Engineering Research(IJCER)
PDF
Embedded linux network device driver development
PDF
Network Drivers
PDF
Buiding a better Userspace - The current and future state of QEMU and KVM int...
PDF
Scalable Service-Oriented Middleware over IP
PDF
The TCP/IP stack in the FreeBSD kernel COSCUP 2014
PDF
FreeBSD is not Linux
PDF
Kernel bug hunting
PDF
FreeBSD VPC Introduction
PDF
Hands-on ethernet driver
PDF
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
PDF
This one goes to 11!
PDF
MeetBSD2014 Performance Analysis
PPTX
The TCP/IP Stack in the Linux Kernel
PPTX
Linux Network Stack
ODP
Sockets and Socket-Buffer
FreeBSD and Drivers
Kernel Recipes 2019 - Metrics are money
End nodes in the Multigigabit era
International Journal of Computational Engineering Research(IJCER)
Embedded linux network device driver development
Network Drivers
Buiding a better Userspace - The current and future state of QEMU and KVM int...
Scalable Service-Oriented Middleware over IP
The TCP/IP stack in the FreeBSD kernel COSCUP 2014
FreeBSD is not Linux
Kernel bug hunting
FreeBSD VPC Introduction
Hands-on ethernet driver
Smartcom's control plane software, a customized version of FreeBSD by Boris A...
This one goes to 11!
MeetBSD2014 Performance Analysis
The TCP/IP Stack in the Linux Kernel
Linux Network Stack
Sockets and Socket-Buffer
Ad

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
medical staffing services at VALiNTRY
PPTX
Essential Infomation Tech presentation.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administraation Chapter 3
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Transform Your Business with a Software ERP System
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
System and Network Administration Chapter 2
ai tools demonstartion for schools and inter college
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Softaken Excel to vCard Converter Software.pdf
medical staffing services at VALiNTRY
Essential Infomation Tech presentation.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administraation Chapter 3
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Operating system designcfffgfgggggggvggggggggg
Design an Analysis of Algorithms I-SECS-1021-03
Transform Your Business with a Software ERP System
Odoo POS Development Services by CandidRoot Solutions
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Design an Analysis of Algorithms II-SECS-1021-03
How to Migrate SBCGlobal Email to Yahoo Easily
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Upgrade and Innovation Strategies for SAP ERP Customers
System and Network Administration Chapter 2

new ifnet(9) KPI for FreeBSD network stack

  • 1. New ifnet(9) KPI Gleb Smirnoff glebius@FreeBSD.org BSDCan 2015 Ottawa June 11, 2015 Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 1 / 24
  • 2. Introduction project wiki page and code https://wiki.freebsd.org/projects/ifnet svn+ssh://svn.freebsd.org/base/projects/ifnet Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 2 / 24
  • 3. Introduction struct ifnet Glue between a driver and the stack Used to be embedded into driver softc, now softc and ifnet has pointers to each other Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 3 / 24
  • 4. Introduction struct ifnet Glue between a driver and the stack Used to be embedded into driver softc, now softc and ifnet has pointers to each other At attach time driver and stack fill in the structure At run time driver changes different flags Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 3 / 24
  • 5. Introduction Why changes are needed Extension of the struct ifnet could require recompilation of all drivers Editing struct ifnet could require patching all drivers Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 4 / 24
  • 6. opaque ifnet The opaque ifnet Code snippet 1: net/if.h: typedef struct i f n e t ∗ if_t ; Code snippet 2: net/if_var.h: struct i f n e t { /∗ actual s t r u c t u r e d e f i n i t i o n ∗/ }; Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 5 / 24
  • 7. opaque ifnet The opaque ifnet Easy way: substitute any access to struct ifnet fields with a function Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 6 / 24
  • 8. opaque ifnet The opaque ifnet Easy way: substitute any access to struct ifnet fields with a function Hard way: design new KPI Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 6 / 24
  • 9. new KPI what’s in struct ifnet? what’s in struct ifnet? driver access instance specific if_flags, if_capenable, if_mtu R y link state, baudrate RW y counters W y if_capabilities, if_tso* W once y/n address lists R y driver name, if_clone W once n methods W once n if_type, dlt_type, header len W once n if_media W once * y/n Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 7 / 24
  • 10. new KPI what’s in struct ifnet? what’s else in struct ifnet? The stuff the driver shouldn’t be interested at Layer 2 softc: if_l2com Address family softcs: if_afdata[AF_MAX] Bunch of other softcs: if_lagg, if_carp, if_netmap, etc Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 8 / 24
  • 11. new KPI what’s in struct ifnet? what’s else in struct ifnet? The stuff the driver shouldn’t be interested at Layer 2 softc: if_l2com Address family softcs: if_afdata[AF_MAX] Bunch of other softcs: if_lagg, if_carp, if_netmap, etc This all can be generalized! Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 8 / 24
  • 12. new KPI allocation and attachment new if_attach() if_alloc() if_attach(if_attach_args *args) sleeps, doesn’t fail (save name conflict) if_attach_args is versioned if_attach_args contains all the “W once” stuff ifdriver pointer softc pointer lladdr supported media list capabilities, TSO limits initial values: MTU, capenable, baudrate, etc Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 9 / 24
  • 13. new KPI allocation and attachment ifdriver, ifops struct ifdriver is static in the driver, storing all non-instance specific stuff Interface methods in special structure ifops Name, type, DLT, headerlength Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 10 / 24
  • 14. new KPI allocation and attachment ifmedia Code snippet 3: net/if_media.h: typedef int if_media_t ; Drivers declare static/dynamic array of if_media_t, pointed to from if_attach_args Drivers declare if_media_change_t, if_media_status_t in ifops Implementation opaque and private to if_media.c Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 11 / 24
  • 15. new KPI allocation and attachment ifmedia + miibus miibus(4) is completely ifnet(9) agnostic mii_attach() allocates pointer to if_media_t array, to be used later in if_attach_args Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 12 / 24
  • 16. new KPI method changes if_init is no longer a method, becomes static function if_poll for polling(4) if_start if_transmit doesn’t m_freem() in case of error Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 13 / 24
  • 17. new KPI runtime modified data if_flags, if_capenable, if_mtu (R, instance specific) if_ioctl method is the only channel to modify the values stack does sanity checking driver may refuse new value if driver accepts value, it may cache it Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 14 / 24
  • 18. new KPI runtime modified data if_drv_flags IFF_DRV_OACTIVE goes away together with if_start and generic queue IFF_DRV_RUNNING goes to driver softc, protected by driver lock Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 15 / 24
  • 19. new KPI runtime modified data link state, baudrate void if_setbaudrate ( if_t , uint64_t ) ; void if_link_state_change ( if_t , int ) ; Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 16 / 24
  • 20. new KPI runtime modified data counters if_inc_counter() is already in head Driver is 100% resposible for the counters TX counters are updated on TX completion, not on enqueue Use if_inc_txcounters() for TX update Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 17 / 24
  • 21. new KPI runtime modified data traversing address lists typedef void ifaddr_cb_t ( void ∗ , struct sockaddr ∗ , struct sockaddr ∗ , struct sockaddr ∗); typedef void ifmaddr_cb_t ( void ∗ , struct sockaddr ∗); void if_foreach_addr ( if_t , ifaddr_cb_t , void ∗); void if_foreach_maddr ( if_t , ifmaddr_cb_t , void ∗); Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 18 / 24
  • 22. new KPI special considerations net80211 drivers No ifnet layer in the driver Task is 50% done Will be committed to head separately https://wiki.freebsd.org/projects/ifnet/net80211 Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 19 / 24
  • 23. new KPI special considerations drivers that do if_start That’s 80-90% of all legacy drivers if_start and struct ifqueue go away driver opts-in for a generic queue in if_attach stack provides: if_snd_len(), if_snd_enqueue(), if_snd_dequeue() and if_snd_prepend() driver’s if_transmit is a short copy&paste Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 20 / 24
  • 24. new KPI special considerations lagg(4) now lagg(4) hijacks if_transmit of an interface it will hijack ifops ifops can be stacked, like VOPs Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 21 / 24
  • 25. new KPI special considerations ALTQ now ALTQ works on top of ifqueue it will hijack ifops Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 22 / 24
  • 26. new KPI scope of work scope of work There are > 200 drivers to be converted Only 16 has been converted so far Conversion of typical 100Mbit driver takes 1 hour Usually driver is reduced by 100 LOC https://wiki.freebsd.org/projects/ifnet/progress Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 23 / 24
  • 27. new KPI scope of work open tasks Better generic queueing/transmit code? ALTQ lagg(4) VIMAGE Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 24 / 24
  • 28. Conclusion Your feedback & help is needed! Reviewing Criticizing, proposing better KPIs Converting drivers Testing Gleb Smirnoff glebius@FreeBSD.org New ifnet(9) KPI June 11, 2015 25 / 24