And also BSD, enough to come all the way over to BSDCan at least
Explain what GSoC is briefly on this slide. Program by Google, where you get a stipend to work on an open-source project (e.g. FreeBSD).
Please do *not* hesitate to interrupt me if I'm too quiet, I have a tendency to speak too quietly!
I think it's best to do it this way round cuz LinuxKPI is definitely more important than BATMAN.
I think specifying the license is important cuz otherwise you taint your kernel.
Graphics kernel-side drivers.
Even though the LinuxKPI can already do all this stuff, there are still plenty of functions, structs, and defines Linux kernel modules use that the LinuxKPI doesn't provide for at the moment.
Mention that functions aren't necessarily needed to be implemented by understanding what the code does. Maybe it does something relevant on Linux but that wouldn't be relevant on FreeBSD.
This code might be buggy so please no one copy/paste this.
Talk about structs?
And without using the system's routing tables.
I assume most people know what a routing algorithm does, but...
This is for explaining what a routing algorithm is/does.
TODO: This should probably go into my thoughts list - a much better way of marketing is showing things through a story. I mean, that's nothing new, stories are good. But this is a great example as to why.
Before I go into the more technical details...
batman-adv is by far the most used, at least in Freifunk
Didn't really know where to put this
While we're on the topic of fun facts...
"I don't wanna get too technical on the BATMAN-side of things, but since I know this'll interest some of you, I'm going to briefly explain how BATMAN works".
hard interfaces are what actually interact with the outside world
soft interfaces are "virtual" interfaces which sit on top of one or more hard interfaces
hard interfaces are added to the batman soft interface
go back to the napkin here
I.e. reading patchnotes :)
Cloner is jargon for "type of interface".
batman-adv does everything though Netlink, thank Alex, would've been much much harder without preliminary Netlink support.
Reason for it being batadv on FreeBSD is that FreeBSD interface names start with their cloner name.
Goal: because it's easier to maintain and pull in updates and can possibly be upstreamed to BATMAN later.
Aliased fields is easy stuff like MTU.
This is a little more involved than just wrappers in headers. But for the most part it is really just wrappers in headers.
if_t is a typedef for struct ifnet.
if_alloc_domain had to be split with if_fill_domain cuz linuxkpi_alloc_netdev_ifp has to allocate it itself.
(For last two functions) These things take in skbuff's, which is the next section.
To be honest skb kind of does everything and the kitchen sink.
Can't add that to base because of GPL. Did ask the batman guys about dual-licensing with BSD but that was a no
I don't think Wi-Fi is hard, it's just that there are some places where I'm dealing only with Ethernet headers which I guess are probably different for Wi-Fi but ultimately similar.
Wanted to do this after EuroBSDCon, but got caught up with school.
Was honestly a larger scope than expected, but fundamentally nothing was particularly "hard".
People kind of expect FreeBSD to work on their laptop's Wi-Fi chip, and if it doesn't, they're quite likely to look elsewhere
And I know there are FreeBSD purists who will say that "FreeBSD is a server OS", but if we're honest with ourselves it's through desktops that people discover operating systems, not through servers.
I am more knowledgable about the LinuxKPI side of things than the BATMAN side of things, so I can't answer all questions!!
If you wanna have a beer with me I'm almost always in the mood for a beer.
That's supposed to be a w not a double v, I know the font makes it hard to read.
You can also find me on Linkedin if you type in my name