Ethernet Switch Framework
Formal Metadata
Title |
Ethernet Switch Framework
|
Subtitle |
Fully utilize your WLAN router
|
Title of Series | |
Author |
|
License |
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. |
Identifiers |
|
Publisher |
|
Release Date |
2012
|
Language |
English
|
Content Metadata
Subject Area | |
Abstract |
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.
|

00:00
Type theory
Bit rate
Software
Computer hardware
Order (biology)
Operating system
Software framework
Device driver
Configuration space
Videoconferencing
Router (computing)
01:29
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
03:37
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
07:36
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
09:14
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
11:34
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
14:31
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
17:58
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)
21:30
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
24:53
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
32:15
Point (geometry)
Standard deviation
Proxy server
Interface (computing)
Device driver
Device driver
Different (Kate Ryan album)
Telecommunication
Ideal (ethics)
Bus (computing)
Physics
Website
Abstraction
33:34
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
37:21
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
39:54
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)
44:01
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
48:18
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)
00:10
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
01:32
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
02:31
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
03:41
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
06:39
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
07:36
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
08:31
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
09:16
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
09:42
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
10:08
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
11:36
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
13:25
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
14:31
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
17:30
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
18:07
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
20:06
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
21:37
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
23:15
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
24:53
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
28:16
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
32:25
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
33:00
OK what was going to say with this of that the on the hand yet we the just
33:40
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
34:56
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
37:24
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
38:35
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
39:56
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
41:40
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
44:05
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
48:21
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
