Ethernet Switch Framework

Video thumbnail (Frame 0) Video thumbnail (Frame 2227) Video thumbnail (Frame 3668) Video thumbnail (Frame 5427) Video thumbnail (Frame 9951) Video thumbnail (Frame 11402) Video thumbnail (Frame 13840) Video thumbnail (Frame 17352) Video thumbnail (Frame 20077) Video thumbnail (Frame 21765) Video thumbnail (Frame 26166) Video thumbnail (Frame 29790) Video thumbnail (Frame 32252) Video thumbnail (Frame 34852) Video thumbnail (Frame 37315) Video thumbnail (Frame 42365) Video thumbnail (Frame 48377) Video thumbnail (Frame 50350) Video thumbnail (Frame 52276) Video thumbnail (Frame 56022) Video thumbnail (Frame 57828) Video thumbnail (Frame 59852) Video thumbnail (Frame 62403) Video thumbnail (Frame 66015) Video thumbnail (Frame 72453)
Video in TIB AV-Portal: Ethernet Switch Framework

Formal Metadata

Ethernet Switch Framework
Fully utilize your WLAN router
Title of Series
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Designing and developing the Ethernet Switch Framework for FreeBSD. FreeBSD is making great strides to be fully functional on many typical WLAN routers. Furthest along is support for devices based on the Atheros series of System-on-a-Chip products. Thanks to Adrian Chadds relentless work, many devices can be used with FreeBSD-current for routing between LAN and WLAN interface. The Ethernet Switch Framework closes one of the last remaining driver gaps to fully enable build an embedded FreeBSD version for such devices. Currently under development, the Ethernet Switch framework enables configuration of built-in ethernet switch controllers. This allows users to create powerful networking setups without any additional hardware. Even though these routers are typically not very expensive, the switch controllers offer a number of features typically only found in more expensive enterprise equipment. This allows users to create interesting and powerful network setups at home or in small offices. This talk will present the current state of development, the architecture of the driver framework and will detail the implementation of a typical switch driver. It will also go into some of the architectural challenges that needed to be solved to deal with hardware configurations typical for embedded systems that are uncommon in the world of regular desktop and server systems.
Type theory Bit rate Software Computer hardware Order (biology) Operating system Software framework Device driver Configuration space Videoconferencing Router (computing)
User interface Distribution (mathematics) Interface (computing) Density of states Data storage device Radon transform Configuration management Limit (category theory) Cartesian coordinate system Power (physics) Open set Number Time domain Data management Word Term (mathematics) Computer hardware Ideal (ethics) Remote Access Service Router (computing) Firmware
NP-hard Game controller Group action Computer file View (database) Multiplication sign Computer-generated imagery Flash memory Device driver Proper map Event horizon Architecture Medical imaging Mathematics Mechanism design Different (Kate Ryan album) Natural number Computer hardware File system Business model Cuboid Software framework Wireless LAN Physical system Computer architecture Standard deviation Information Visual system Interface (computing) Data storage device Bit Mechanism design Category of being Word Kernel (computing) Read-only memory Interface (computing) Configuration space Normal (geometry) Bounded variation Physical system
Personal identification number Default (computer science) State of matter Interface (computing) PCI Express Flash memory Data storage device Bit Component-based software engineering Befehlsprozessor Personal digital assistant Single-precision floating-point format Mixed reality Factory (trading post) Whiteboard Data conversion System on a chip Wireless LAN Physical system Physical system
Functional (mathematics) Block (periodic table) Interface (computing) Disintegration Interior (topology) Device driver Mereology Computer Value-added network Number DSL-Modem Personal digital assistant Single-precision floating-point format Interface (computing) Cuboid Configuration space System on a chip Physical system Social class Modem Wide area network
Personal identification number Code Generic programming Product (business) Data management Architecture Kernel (computing) Computer hardware Computer worm Utility software Configuration space System on a chip Physics Social class Physical system Chi-squared distribution Personal identification number Standard deviation Information Interface (computing) Device driver Connected space Arithmetic mean Kernel (computing) Befehlsprozessor Order (biology) Interface (computing) Software framework Physics Speech synthesis Whiteboard
Code Multiplication sign 1 (number) Device driver Data transmission Latent heat Hooking Network topology Hypermedia Computer hardware Bus (computing) Business model Physics Physical system Form (programming) Boss Corporation Multiplication Interface (computing) Plastikkarte Independence (probability theory) Bit Line (geometry) Instance (computer science) Connected space Transmitter Befehlsprozessor Maize Logic Network topology Business model
Point (geometry) Hoax Link (knot theory) Code View (database) Multiplication sign Device driver Set (mathematics) Mereology Number Revision control Latent heat Mathematics Mechanism design Different (Kate Ryan album) Hypermedia Bus (computing) Configuration space Data structure Physical system Interface (computing) Weight Duplex (telecommunications) Sound effect Message passing POKE Order (biology) Physics Configuration space Normal (geometry) Reading (process)
Link (knot theory) Line (geometry) Real number MIDI Device driver Set (mathematics) Mereology Perspective (visual) Event horizon Product (business) Geometry Bus (computing) Business model System on a chip Office suite Address space Physics Interface (computing) Bit Line (geometry) Entire function Voting Physics Right angle Business model Figurate number Spacetime
Point (geometry) Group action Implementation Link (knot theory) Code Real number Multiplication sign Device driver Prototype Mechanism design Robotics Term (mathematics) Different (Kate Ryan album) Internetworking Computer hardware Touch typing Bus (computing) Ideal (ethics) Proxy server Error message Address space Social class Interface (computing) Generic programming Planning Bit Cartesian coordinate system Approximation Connected space Data management Pointer (computer programming) Telecommunication Network topology Phase transition Physics Normal (geometry) Right angle
Point (geometry) Standard deviation Proxy server Interface (computing) Device driver Device driver Different (Kate Ryan album) Telecommunication Ideal (ethics) Bus (computing) Physics Website Abstraction
Point (geometry) Standard deviation Mobile app Device driver Limit (category theory) Parameter (computer programming) Mathematics Latent heat Term (mathematics) Single-precision floating-point format Computer hardware Bus (computing) Square number Abstraction Boss Corporation Interface (computing) Content (media) Code Generic programming Line (geometry) Device driver System call Word Order (biology) Phase transition Physics Spacetime
Point (geometry) Standard deviation Functional (mathematics) Implementation Multiplication sign Interface (computing) Device driver Set (mathematics) Generic programming Bit Generic programming Device driver Latent heat Kernel (computing) Computer hardware Network topology Computer hardware Business model Configuration space Natural language
Point (geometry) System administrator Range (statistics) Mereology Value-added network Subset Data management POKE Term (mathematics) Different (Kate Ryan album) Single-precision floating-point format Business model Utility software Software framework Traffic reporting Metropolitan area network Form (programming) Default (computer science) Weight Electronic mailing list Mereology Perturbation theory Limit (category theory) Data management Network topology Order (biology) Physics Configuration space Table (information)
Digital filter Implementation Code Gradient Multiplication sign Range (statistics) Spanning tree Revision control Architecture Data management Term (mathematics) Different (Kate Ryan album) Computer hardware Green's function Business model Software framework Router (computing) Form (programming) Priority queue User interface Mapping Projective plane Bit System call Data management Befehlsprozessor Software Computer hardware Network topology Revision control Queue (abstract data type) Information security Router (computing) Spacetime
Code Multiplication sign View (database) Source code Execution unit Set (mathematics) Insertion loss Open set Mereology Disk read-and-write head Wiki Medical imaging Sign (mathematics) Hypermedia Core dump Encryption Software framework Covering space Link (knot theory) Concentric Moment (mathematics) Flow separation Degree (graph theory) Web application Befehlsprozessor Order (biology) Configuration space output Right angle Video game console Whiteboard Reverse engineering Point (geometry) Device driver Protein Number Revision control Internetworking Computer hardware Business model Ideal (ethics) Software testing Utility software Data structure Router (computing) Firmware Standard deviation Graph (mathematics) Information Interface (computing) Cellular automaton Projective plane Line (geometry) Word Software Personal digital assistant Network topology Universe (mathematics) POKE Video game Table (information)
all right welcome however last December I Red rate exciting postpaid but that he had managed to actually but would previously on a couple of Efros based pieces of hardware and other 1 of which I actually owned and I thought well that's great finally I can replace my open w are key software built with the operating system I actually enjoy using features previously so I immediately started looking at that and notice that this particular piece of hardware of has a switch which is not properly initialized by the hoopla so in order to really use it as a wireless router what you need to somehow initialize the switch so I figured well I'm somewhat familiar with open double your key coat so why don't I give it a shot and see if I can come up with some kind of driver that this initialization and maybe some of the land type of configuration that's what led to this Cocke so why I
don't want to do this because there's a lot of little devices out there that are really cheap from about 30 dollars by that are sent a powerful and being able to run free we assume them enables a couple of things that you wouldn't necessarily get because they have Ethernet and Wi-Fi and use them as routers and that as I'm going to talk about it but there's a couple of things that you can do by with the hardware that the stock firmware usually the support many of these devices also have a USB port which means that the limited DOS the hardware in terms of storage for example can be overcome by plugging in the USB eyes the state or by putting in a high crime or attaching all kinds of interesting Hardware to that use the port so as I said the firm
word these devices usually come with is limited but it's made as a consumer device it's usually set up in a way that kind of does the usual stuff you would expect from such a device but there's very much limited use interesting stuff like actual configuration management that goes beyond what can set up over the web interface usually cannot lobbying by SSH and of course if you have a cool idea to do something interesting with some kind of ideal device used the device like a camera or an extend interface or I have no idea you can't do that because you cannot actually load your own suffer on so there is a number of limits based distributions specialize distributions that already support all these additional applications but simply than a freebies so I wish I won't be as the on the spot so I'll point out
he has all kinds of hardware there but that's the stuff we're talking about what Adrian has is some reference designs so the usual consumer hardware you buy in store looks slightly different but the internals are almost identical because almost all manufacturers simply take the reference design and produce their own PCB and that's about it the through all the so as a said including most of this work already and so we were cut just talking about adding the little the last little bits of pieces but to actually make this into something that works out of the box I'm going to talk about the Ethernet switch that these devices usually have Adrian is working on supporting all the different variations of a wireless controllers but I think he has most of the work done but there might be 1 or 2 pieces missing 1 big challenge is that most of these devices only have 8 megs of leisure Informix of flesh and I don't know whether you have run the views the honor system that has that on the storage last time I tried that that was a different century so of course you can't parrot down but nobody has really look into trimming free BSD the kernel and the user land into just small size and a long time so that's something that needs to be addressed in 1 way or another well is that's the previously that so from but in I mean event vendors ways it's not impossible it's just what needs to be done if you run a make world it's nowhere near it makes so of course but with the flash-based storage you probably want to have slightly different configuration mechanisms of you you want to run with with read-only file system mostly about you want way to write that configuration information in a sensible way that doesn't really work necessarily with the standard so see system so that's something you probably want to address in 1 way or another so and of course the 1 thing that we apparently going to get pretty soon is the natural flash file system right now we run with just UFS image but that is mounted read-only and we just write that entire petition whenever we want change and configuration with the proper flash file system then we can just run basically normal user land with read write access to the files
there you go so I'm going to talk about 4 main topics 1st of all what kind of hard work is this actually what does it consist of but can you expect it but properties can be expected to have I'm going to talk about some aspects of this ethernet Switch framework architecture which is a pretty big word for it actually supposed to be very small driver but we ran ran into a couple of issues which I find quite interesting and I'm certainly did expectorant I'm going to talk about the configuration interface of mostly in terms of like what what API can be used to action control the switch and what kind of model is behind that and then of course I'm going to have a quick outlook of what we wanna do in the next couple months so what's in the box in 10 maybe pass around 1 of these things if people wanna look at it
so there's what ATP what a TP-Link the 30 34 at 20 looks like a that's based on a single chip design that's actually hidden under this heat sink our system on a chip with the CPU and I and all basic stuff we have on flash along and that's connected to the CPU biased PI so we have 1 round should it to mix of RAM and we got the wireless radio to which is connected in this case by a PCIE single idea of no stuff that you actually see on the board is more or less passive stuff and but like a dc dc converter and that's pretty much it so all the interesting bits are in very small chips so conceptually but
this looks like this without the CPU in the center we have RAM and there's a flash of of storage so 1 or 2 USB ports we have some GPIO pins which are usually just used for us these to indicate some state of the device and usually 2 buttons 1 to reset the thing to factory default configuration and the 2nd 1 to start WPS we have 1 or even 2 Ethernet interfaces depending on the system-on-a-chip that's in use the 2 that usually we have connected the switch chip and of course wireless face so in case of
this rather the pictured that just those and that it is quite highly integrated and the white box shows what's in the system on a chip and so the Ethernet chip is actually part of the system on a chip on external are only the RAM the wrong and the wireless radio to so that's the
feature set they common but in this case we have 2 Ethernet ports 1 is actually directly connected to the plug on the device anything is connected to the built and such control and this switch from for that can number of can do a number of interesting things with which I'll get into in a minute so there's
another device just to give you some idea of it could look like it's well there's a different system-on-a-chip that that has different functions integrated and here we have an external switch chip from and there's actually quite a multitude of these kinds of configurations there's a lot of its which it's all there and the frustrating part is that the switch chips are a based on kind of the same IP blocks but of course they differ in little details and usually it's annoying little details that they differ all trying to build the driver that supports an entire class of switch ship might not be that easy again some basic features of this device interesting about this 1 is that it only has a single Ethernet interface and all the 5 ports on the back of it are actually connected to the switch and this is the 1 that got me started because the the the part that you a cable modem or you DSL modem into is on the switch and if the switch is not initialized properly but that part is connected to the 4 Lamport's so if you switch the thing just on and it doesn't get initialized by the OS from computers you're local computers are just connected to the cable modem which usually leads
to things that you don't want to have OK so for my detector of we have hardware-specific drivers for each switch ship and we're currently hashing out how much commonality there is between the individual ones and whether we have a class over that can handle like an entire family or whether we actually have to have different drivers in Adrian over the past couple of hours basically has done some work on that so and is probably doing that right now that that that that can but then I we want to have a generic but the kernel API to do which conflagration and as I get some information from speech into the kernel into other subsystems and of course we want to expose and I control interface went so you can run a command-line utility to do whatever you need to switch on 1 major thing that we want and any switches have a standard Phys and we want to reuse the existing phi code and I I bust code for the phys as much as possible but in order to take advantage of all the drivers that already there for most of the integrated switches it would mean absolutely be necessary to do that because they just work fine with the standard UK Fico and and has awarded a means employer has a couple of more interesting Phys that might turn up in these kinds of products so it's actually going to be beneficial to be able to use
all the 5 drivers that are in the system of here is 1 switch chip and that is pretty standard layout and in the center you have this which controller with a couple of Macs others which controller but it takes care of forwarding stuff in the ports you have 5 physical ports of which a fight with with a fight each other and you have 1 CPU board where you have a back-to-back MAC connection this which controller but is hooked up to the CPU y by I swear C interface all I but not quite a and on the CPU side that's actually on just 2 GPIO pins because the CPU have night I stress the interface the from the that went off OK so so that that the system-on-a-chip could do it in hardware keep you informed
whatever reason decided not to do it that way so the so when I started out in December I thought OK how can I do this and so I started reading code and it was quite of the maze that almost all the bits are there the only thing that I really needed to even touch is battles which right so the entire attachment the entire hardware is already in the tree there were just a couple of places that needed slight adjustment of the major thing was in I the bus because the switch it doesn't implement proper I square see but some Basadre eyes they in the form of it but I needed to relax the investments that are in the boss code to make sure that the confection actually works so that was actually quite nice because doing all this bit banging by hand and doing all the logic behind it and just writing that code is highly annoying and error-prone so being able to just plug this together by hands really cool when leading up to another but I wanted correctly explained how Phys normally work because we're going to get into the situation or in into a discussion with would where we found that our model in the tree does not work we we we wanted for for the switch it so the idea is that the card from has the transmit logic transmit and receive logic and in a media independent in its form so you actually don't have to deal with the specifics of how the bits are actually encoded on the actual transmission media and and they thought well we come up with a system where can actually have multiple ones Bingol interface because you might want to the had to switch between them or it's stupid to manufacture single-card can can hook up to multiple things so of the actual data data transfer lines of those are here at and that form 1 bus that goes to all the Phys and you have a 2nd minibus of 2 lines and yes which is ideal and plot them and those go to the Phys as well and that is the way of the CPU through the the controller can tell the size what to do but what's important to remember is that only 1 of the fires connections actively involved in any data transmission so only 1 of the 3 can be active at any time and that is reflected in our drive only there's a couple switches
that use yeah would driver model if you have 2 Ethernet interfaces of each Ethernet interface gets its I i've us instance and attached to that is some 5 or even multiple Phys depending on the actual the controller and modifies are connected to it and that he's not better probes others up to 32 possible Phys that can be hooked up to the system or to each interface so but I and II
bus interface the this but 1st I should say I was actually is not free specific and shared by all these these on which I immediately leads to such somewhat challenge to actually integrate that into new bus and that means that the normal configuration mechanisms that other views these have don't have kind of in conflict with NuBus because we're trying to stick it into NuBus in ways that are compatible with NuBus but not necessarily so 1 way in which you can actually see that is that we have the NuBus attachment both are which of and I must interface methods of 3rd accessing the and the control registers sending in writing the reading and writing registers off the Phys and at the same time some messages by which but I I bust when it detects some fight change informs the 3rd driver that it needs to adjust its own MAC but 2 examples for example to adjust to different link speed at the same time this media from if a structure has a number of callbacks that do similar things and so that I I us not only uses some you must methods to community with interface also directed into the media and gets called by you get but without the interface actually taking part in that
so in order to be able to use the existing Fico code of 4 hours which chips but we needed some way or I needed at that point in some way but to a fake up an interface because I was expects expects to be talking to a standard if net and did you suspect expected to be there so I figured I just try and surprisingly that actually works so you can initialize an effect and you just don't poke into the rest of the system it sits there but nobody knows about it except our own private cold and I was fine with that we can actually use the phi driver have callbacks into the switch code and and do all the things that you expect to do with the fight like change the speed and duplex settings and shut down a port or stuff like that so but that was quite nice that 1 question for you guys so might be is that actually OK can can I initialized NIF net end expected to work or is there somewhere that might be kept track of and which might get into the way of things because we suddenly have is that that's not lead OK such
controllers that are connected to I from well you which presented itself like they would be Phys you have a question or OK so you're raising your finger and so they from from a center perspective they look like a standard fight and we actually have a driver for that for some real tech chip that in there and I don't remember quite what the model number but we those best stubs to actually do some initialization to the switch I n and work as a fight that's fine but cannot actually we we don't have the interest infrastructure to really talk to this which pardon and figure it it's somehow high coded in in that liver on this other models from of switches because some of them are in the Atheros line but that I can use in the the bust but don't look like Phys at all they just we use this register access space and and they also do not present a single the use the entire address space of the 10 bits of address that there and of course but that a place have with ii bus of detection because this worst-case scenarios it into text that there should be a fight but in fact it isn't 1 and it's not working right model all the
so that's 1 problem so how does that actually look that's what a metal office which that is in the 1 of the embedded chips from and we have on the right hand side Our Phys and that are connected to the physical parts and and we have built into the system-on-a-chip he hinted at even and parts of the and the 1 thing that is interesting and is gave us a great to have him for debate on this will this little thing here so it has some control registers for in in the interface but their action that have up to anything so that problem well you just use that from G 1 right the this 1 here is not talking to the Phys it's talking to the switch control so D 0 is directly connected to a single 5 so that's the vote when caught on on on that right so like it flows directly between the 5 and the give it could work but if this fight out the census link that events from that interface needs to know about that so if you kick it can that settings so how can those to actually communicate well the only way they can do that is through the switch controller onto a 2nd and BIO controller that is implemented in the switch in this which register space and
then get on to this in the us to talk to this that doesn't really work well with our existing code so the device attachment tree so is something like this where on of the the AIG 0 so so somehow need access to and and ii bus there's actually attached to the switch because it hangs off then the ideal control registers that are in this village so we need something in here but we need something here that somehow enables this kind of communication and to my great surprise this has never come up before this apparently was the 1st time that there's any piece of hardware that cannot be modeled by a tree there's actually need for having some additional the cation between but nodes in the device tree will OK I I ask on Iike and nobody could tell me of an example where the problem came up and how will solve them of the all OK but that this the sure of course so we tried a couple and I tried a couple of things I I broke like 5 different prototype implementations of how to deal with this and we eventually ended up with 2 possible ways of doing this so but Alexander it was decided that he's going to write a special 5 driver that takes care of this so this fight driver has some internal knowledge of that's which it actually wants to talk to to issue register reads on the real fight but it's going to present itself as just a standard 5 fight of on and that and that and I am I versus just normally attached but to G 0 of terms of in terms of the tree you see that's very nice and very clean it has a couple of robots but 1st it needs to have at to that other node needs to find that that needs to be solved so there's different ways on how to do this the best you found a very simple way that well in his face itself the name problem with this is that it replaces the existing 5 drivers because 2 I us it's justified driver so whatever it features the action requires need to be really implemented in this drive but class I'm not entirely certain that all the features that a fight driver I can't resent are actually going to work in this way because the bus generic Code also acts accesses but then the IO registers directly but bypassing the fight so I'm not sure how to deal with that but but he he did get it to the point where you can actually get link status of the pockets and that in itself is
very useful in the 2nd option that I decided to implement is a bit more complicated so I splits up a bit so we have an attachment but 2 of a G 0 so it has an a Meyer proxy connected that which is the new piece and to the approximation is connected is them my i've us and some of 5 driver according to the norm of mechanism that and I thus users so all the interesting this happened here so how does that get to actually talk to the right in the eye ailments well we have a new driver but that only implements than DIO register axis is the exact same interface as I have was wrecked redirect right but it splits that out from in the IO say from him I had us so at exports the generic India bus and connected to that is the actual fun but I added that in here because that is the address all of the BIO controller on G 1 and G 0 look at so and because of that is kind of generic this Biver does this very same thing it has its own and the ideal access to the switch hardware that controls them the and and I was in the switch and then explodes another and I Obus who consumer at that might be and and that and we have a 2nd piece which is an in proxy this of course these 2 are connected that's the whole trick of the G 0 phase that's a hint has additional code is that it is present it instantiates the MII proxy tells it to which and proxy wants to connect that turned out to be actually a lot more complicated than at 1st thought of basically for 2 reasons a new best plan has an API that guarantees that you cannot obtain device references outside of the the X in which it can guarantee that they won't go away so you cannot simply ask NuBus also did the the pointed to the device of with a I I don't know 1 that call doesn't exist and it's it exists internally but not external then at 1st I thought that's annoying I'll just add that and then I thought about it and realize that no probably on purpose but once I have that pointer in hand I will never get notified when that device goes away so I would have a dangling pointer if that device ever gets unloaded so I need something that actually takes care of dynamic loading and unloading and attaching and detaching of drivers so that's why there's these 2 halves that have an internet connection and what he does but is actually tell this device look out and see when that attaches tree that connection and when 1 of them the touches that connection is broken up and then calls to this proxy simply by returning error because the connection has been broken so there will be no dangling pointers of course in Embedded World drivers will never be unloaded Wicat can refer see that happening but management right if you can yeah other that other people other so the main feature of
this is it's out there in the ideal access register access to the flies from the notification from the communication between the fires and the matter of the even in the face of if there's that by having 2 attachment points of 1 for the interface 1 for that and the ideal of registered driver and it has 1 main feature it's completely transparently and the bus so the it doesn't the site and I I lost I is actually not see that there's anything different
OK what was going to say with this of that the on the hand yet we the just
the point I forgot actually to mention and that is a probe order from some you must actually has an order parameter in its app API but nobody uses it and about 1 we ran into our is that we actually need to make sure that this probes 1st because it runs 0 gets into its attach routine it just expects to be able to fully initialized and I tried ain't the actual attachment of interface but that didn't really work so 1 hack is actually to add a parameter to the MIPS Nexus we have an additional hints that makes sure that this gets probe 1st and attach 1st because of the so any better suggestions very happy to hear but somebody like told me that's a crude hack you can do that my justification is it's already in the it's just that exposed in any way so it's it's a one-line changes to line change to the Nexus attach that attaches children think you
know OK I will at the of all the this is not and because of that the OK now remember OK there's another 1 point of contention between a and B between them at center and I and basically but how should that the hardware specifics which driver talk to other hyper and how should the various features be exposed in terms of API so Alexander's idea was all I'm going to write this special generic and switch drivers that presents the generic register interface for any and all switch ships out there because he has some hardware but that can actually attach to different busses I I don't remember it I think it's broken device that yeah that that can even to have memory-mapped I-O register access or have some I squares your and BIO register so you want to make sure that this actually and to have a single switch driver that did is extracted Extracted from but how that register axes axes actually have so he decided he has he will have this this generic interface that that presented this generic register access a couple of shouldn't devices word debt driver shows that that attach to the actual boss device but that then translate the generic API into the specific of bus of calls but the switch rather then attaches to this particular of to this generic driver then many when I finally understood what he was trying to do I figured as well I thought I had read something about that space isn't that exactly what he's trying to do and I so 1
thing that that but I'm getting ahead of myself sorry but so that's how that attachment will look like and the interesting bit basically is here but he I control as there that exports of generic functions and as you can see basically can only be attached 1 harbor specific driver at this point you would need multiple X which others to have multiple drives attached here and also it's a bit so obvious to me how you would actually connect up in the kernel the driver that wants to talk to the switch because this interface basically is or the hardware-specific driver do you attached that here as well and what kind of interface would use would be the NuBus methods for the such driver on some other set of drivers and I haven't heard an answer to that question yet like he he I don't think so you need to tell that himself the metal that that I came
up with I think is straightforward how they API is supposed to be used so we have a hyper specific driver that attaches to whatever the best the hardware is actually attached to like ice per se or in the or a memory-mapped I-O or whatever of each of the which drivers exports genetic API that translate from generic control model into the hyper specific settings and the way it does that but it exposes they a set of new was methods to do the actual configuration and then we have a generic driver that basically just translates I controls into these new was methods and of course this interface is available for other drivers as well 1 thing that could be implemented in the future there might be some spanning tree implementation for 1 of the chairs and that could be attached and this and could use the very same configuration interface to configure the switch in the appropriate way OK Configuration-Interface here the
switches Our all over the place but some of very simple can do very the few things others have very advanced features so it is unclear how we can actually put that into a single model that can be presented that as a single utility to do configuration on because even the weight of the lands are configured can vary widely between these things and like can you mix part based and tagged the lands on the same device and if you can mix them how does that actually work like what is the presence of a single it or what gets decided what gets added that automatically order on the tag so of there's a couple of things that that almost all of them can do that we looked at and that is basically all of them have some form of fi or another so we can do link management including shutting down ports but we had their support or that tag the lands of usually 16 entries and some have limitations on the range of the land I is that can actually be used but many can be freely configured from who over the full felt that range and that there is now less some a way to manage the MAC tables so there could be a way to disable learning and hot cold of which the points forward for which max so we really want to
have and we were very close to actually having that in the tree at least for the 1st 2 parts is in the initialization we want to bring up the switch and sensible default configuration depending on the device but I want to expect registered access to any client so that we can do things and use man until we have fleshed out Chill API that we want a we will probably need some capability API so that the utility and use land can figure out what kind of switch it is it's trying to talk to and what it can or cannot do so so as an administrator you can actually figure out whether something is supposed or the and I think the next step in terms of actual a consideration of this it would be poss part based and tag Avila and configuration but with decided that we will switch molds it's either going to be part basically lands or attack the balance because in a sense technique lands are a superset of poppies lands of for most configurations of as a said these switch devices can mix the 2 most together but neither Alexander nor I really understand how that works it's it's very confusing and the pitch it's described it all this difference is in how these switch chips decide what to tag and untag on which parts like when you're rest and interests so we decided we just have a single switch report is either the really going to be all tag or none of it is going to be tough that's certain limitation but I think for the kind of switch is we're talking about with only 4 ports that's that that is my sensible but restriction so there's a default view an ID which for the untagged ports decides but the land ID to assign the frames on interest and of course each of the the LAN configuration entries has Avila ID and a list of the Member reports the so
what still to be done that basically Adrian has made the call and has decided this is what's going into the tree and he's committed to the last bits yesterday and at the top of the the and this last letter code and especially that Alexander has that we want to bring into what we have now decided is going to be the base version so that's going to require a lot of work I think he has run I don't know 15 or 20 different switch is something in that range yet so it's better it's a lot it's a map across different vendors and so we'll see how how that goes and of then pick out whatever's left a in common hardware but I like to give you mentioned and and you want this space we're talking about like but after us based designs alone but there's like I don't know 80 or a hundred different models of routers by like 20 vendors so dealing with all that is hard enough but then there's of course brought based designs and green and I don't know what so it's it's it's hundreds hundreds of different models so what it did not and I can remember so that would look into like good things to support the Flight of course they should be not too expensive they should be powerful enough and yeah it's of what you see on so then that can be done in the future with this so of course they're the switches cities they do a support tagging almost all of them support some form of priority queues all of them supported more or less the deciding what gets forwarded where as some of them actually have quite advanced things in there but up to action-packed filtering them and I think the news us the switch should actually decide 6 I was really surprised of then so the news 1 also can do some form of not by the form so it might be interesting to see how to integrate that and what to do with that because of course the CPU in these things is somewhat limited so so you can maybe do 100-megabit wire speed but above that if it gets very and you might want to use the CPU for interesting bits like actually talking to the wireless chip and shuffling data back and forth between that and the user interface out so if the hardware can actually do the that for you that's 1 less thing you need to deal with in software now I think that I think might make really great cool some of coal project is trying to figure out if the existing spanning tree implementation that we have in the tree can be hooked up to 1 of the switch controllers because almost all of them support hunting but the management frames to the CPU port so they don't implement spanning tree themselves but you could implemented on the CPU at all the switch to enable forwarding on the ports of disabling and of course you can also do things like port-security stuff but if you're interested and I'm sure there's plenty more things that in terms of interesting networking stuff the that's going to be available then of 1 thing that I I'll leave it at that time OK so here's the people involved
and our couplings of the wiki page I have set up a correctly is more of a brain dump then the tutorial so I need to work on that and bring it in line with what we now have in the tree from z router is examiners project which is free BSD-based but tis the tent together with a number of other people to come build up like ready-to-use firmware images for many of these devices including their own web-based concentration in standard ways so basically it's to replicate the standard firmware for standard use cases like opened all your at your DD-WRT or something so that might be very interesting as well to look at all right questions but the yeah we haven't done IT sector I'm not using the Open began and our current hardware like the the 400 megahertz that the CPU's that typically in there I can and can't do around a little 6 megabits encryption wizard of in Software with the right and encryption over but so that's completely CPU-bound but it's a very interesting question in other NEC views that have hardware solution the trouble is that's clear if that you the the the same the show of the but it's yes so the hold them in with that the use of fire was 1 of the things that still in show 1 and we that would be outside of New Boston this problem the how all his the with of so while they were the so it not the firing of cells that you like the moment right so so what is what the Prize only what in the past you know the of various as it is called here who and here is the last time we must also you must the last we love to stand if we were to look at all this is actually of he said that while on you all that all that I have to the 2 of them the all I asked you this as the kind the right was the most of on think what and all of and that all of us have here we here is the loss 1 the the yeah it must be so long as the is the latest that's yeah you're so much in the early part of the the the the the the of of where as the and we have all heard of the time you will get a the 1 on it requested to just to swap boards so he is 1 of the 1st and the last part this on the of of of of the you that half of the on the the love the and of the and of a lot of things in this the what I heard what was the the and you it all you want to I think to and so on but I tried deferring by completing the Ethernet driver attached until such time as I have them in the ideal register access to the right and the I will bust and then into lots of problems and that's probably because I just don't understand the cold well enough but but all the survivors expect to come to their attached protein and have the if not completely initialize input into everything including the if media structures so at at at the attach point you have to decide is this going to be an Ethernet interface with the media or not and so you have to be further attaching the Ethernet interface until a later time and I couldn't get that too with with odd R. G the the about the we a graph love but then once I what I work like that in the and this it was wearing if to cite the data sheets for the hardware and so this what yeah I there's there's 2 sources of information I act started out by a reverse engineering and code and then Adrian said why don't you look at the beta sheet of you you signed this and that that's bad and interestingly enough I I hope I am not violating my Indian by saying sometimes it's actually do better to look at them in school because you know it's working to some degree and the data she very confusing times yes over here and sign it the units this year the it was and key on was of and so they're all you have be the in there sign of it without of a really the head of also only in the day and will so what is all of you if I the same the which also units the hell of it they're not is the you know in the US the point of view you the the other thing you in this matter the with any of the the other I know it's you it up not that and all the the 1 might you won't look at 1 the it was as he said that the to see all the there's 3 fire and of Europe all of it and about the you know this is far others have that's the easy I that is as it was slow and with you have called in cover the where the if you don't have 1 right now so I I look at the Linux API and a there's a couple you could do it like that but then again limits doesn't order all w word he doesn't really support anything but V-NAND configuration and there's a couple things that we're interested in that go beyond that so I think that we actually might come up with our own API there I asked this in so you have that and in in for a year the last the market now the now green I 1 green I wanted I wanted green yeah and this all this and yes and no so I I wrote a command-line utility uses the same keywords to do that in official port configuration and so I think that's a natural way of expressing that the command line the but as Adrian said we haven't really committed anything to the tree yet so we'll see how that works out but the 1 specific goal is we are we are using the existing infrastructure for its media or I expect the configuration to be similar to what if conflict of it's not no if if media actually add is very expensive and it tells you exactly the kind of standard that 1 to apply to that point so written the I'm actually just using a serial console and that's it so if you buy something off the shelf you need to open up the case and soda and a cable like repay table but that's about it so I'm just doing this with the DAB and lots of dust the from the internet the fact the most of them most of them have it on the air in with the to the the a lot of I think its OK but that so don't you're using something commercial or at the end of get this of university of the J. has bought a and that the a lot of useful stuff you know the how can this was the was or the of the mind is will it so it it's an inch best and so on in in the but that the the standard set of these which is is that it's actually switch like as if you had Colombian through cable standard test of switched into the 1 port on the router on almost all the switches poured a configuration in which they pretend that received frames with the part number it was received on and forward that to the CPU port so you could write out the completely separate driver model where every single port on the device is represented as a standard interface and that's something we have talked about and that I don't think anybody has any idea how to actually do that properly that is and the all of the or yeah there's there's you can do lots and lots of things yes yeah just write the driver and like as of now as of last night you you can actually start doing that if you know the switch chip and you can just peek and poke at the registers the which and but it into whatever confirmation life yes the my honestly you want to that I have you know what all so the that all right thank you very much