The future of wireless networking - mobile, gigabit and beyond

Video in TIB AV-Portal: The future of wireless networking - mobile, gigabit and beyond

Formal Metadata

The future of wireless networking - mobile, gigabit and beyond
Title of Series
CC Attribution 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 purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
This presentation will cover the current state of wireless technologies in BSD (at least focusing on 802.11 and Bluetooth) and how well (or not) each is implemented and supported by the various BSDs. This includes the classic operating modes (hostap and station modes) as well as newer developments (TDMA, 802.11s, P2P/TLDS, Bluetooth/802.11 PHY sharing.) It will then cover upcoming technologies - 802.11ac, 802.11ad, hybrid operating modes, aggressive mobile power saving technologies - with the technical, architectural and structural changes required to make these technologies a reality.
Laptop Standard deviation Polygon mesh Email Presentation of a group Freeware Graph (mathematics) Polygon mesh View (database) Multiplication sign Android (robot) Electronic mailing list Planning Coma Berenices Normal operator Crash (computing) Software testing Electric current Laptop Wireless LAN
Computer program Group action Video projector Source code Workstation <Musikinstrument> Time zone Client (computing) Shape (magazine) Disk read-and-write head Tracing (software) Software bug Different (Kate Ryan album) Set (mathematics) Damping Physical system Metropolitan area network Block (periodic table) Cross-platform Binary code Electronic mailing list Branch (computer science) Drop (liquid) Mass Bit Instance (computer science) Control flow Portable communications device Sequence Process (computing) Telecommunication Order (biology) Interrupt <Informatik> Software framework Quicksort Hacker (term) Point (geometry) Slide rule Open source Patch (Unix) Device driver Online help Mathematical analysis Drop (liquid) Event horizon Code Product (business) Number Computer hardware Energy level Data structure Communications protocol Address space Code division multiple access Focus (optics) Graph (mathematics) Demo (music) Information Physical law State of matter Code Plastikkarte Core dump Directory service Data transmission Power (physics) Frame problem Transmitter Mathematics Radius Software Integrated development environment Personal digital assistant Network topology Wireless LAN Window Standard deviation Building Code Multiplication sign View (database) Complete metric space Stack (abstract data type) Mathematics Bit rate Software framework Extension (kinesiology) Covering space Scripting language Electric generator File format Linear regression Concurrency (computer science) Moment (mathematics) Oscillation Mechanism design Curvature Time evolution Website Right angle PRINCE2 Resultant Asynchronous Transfer Mode Row (database) Laptop Game controller Link (knot theory) Software developer Image resolution Lace Field (computer science) Power (physics) Twitter Revision control Software testing Maize Summierbarkeit Condition number Mobile Web Polygon mesh Analytic set Device driver Electric power transmission Event horizon System on a chip Computer hardware Pressure
Game controller Table (information) Code Multiplication sign Workstation <Musikinstrument> File format Bit rate Human migration Bit rate Kernel (computing) Vertex (graph theory) Endliche Modelltheorie Task (computing) Workstation <Musikinstrument> Information Interface (computing) State of matter Bit Statistics CAN bus Type theory Event horizon Sample (statistics) Personal digital assistant Data logger Energy level Wireless LAN Prototype
Ocean current Point (geometry) Laptop MUD Equals sign Mountain pass Artificial neural network Maxima and minima Real-time operating system Infinity Special unitary group Graph coloring Value-added network Emulation Coefficient of determination Bit rate Average Electronic meeting system Physical law Maize Summierbarkeit Conditional-access module Error message Scalable Coherent Interface Metropolitan area network Execution unit Information management Moment (mathematics) Mass Grand Unified Theory Price index Line (geometry) Inclusion map CAN bus Sample (statistics) Multi-agent system Uniform resource name Wireless LAN Row (database)
Concurrency (computer science) Video projector Code State of matter Multiplication sign Workstation <Musikinstrument> Database Bit rate Inverse element Client (computing) Special unitary group Arm Fraction (mathematics) Coefficient of determination Bit rate Hypermedia Encryption Row (database) Endliche Modelltheorie Data conversion Extension (kinesiology) Belegleser Error message Resource allocation Presentation of a group Arm Block (periodic table) Concurrency (computer science) Moment (mathematics) Electronic mailing list 3 (number) Bit Flow separation Arithmetic mean Frequency Multi-agent system Order (biology) Right angle Pattern language Representation (politics) Bounded variation Spacetime Point (geometry) Ocean current Metre Polygon mesh Functional (mathematics) Game controller Link (knot theory) Codierung <Programmierung> Device driver Average Plastikkarte Rule of inference Power (physics) Element (mathematics) Number Time domain Frequency Latent heat Population density Operator (mathematics) Representation (politics) Conditional-access module Associative property Form (programming) Domain name Rule of inference Polygon mesh Client (computing) Density of states Device driver Data transmission Power (physics) Logic Transmissionskoeffizient Wireless LAN Extension (kinesiology)
Scheduling (computing) Concurrency (computer science) Code State of matter Decision theory Plotter Multiplication sign Workstation <Musikinstrument> Water vapor Bit rate Client (computing) Mereology Data transmission Software bug Data management Mathematics Bit rate Computer configuration Endliche Modelltheorie Monster group Information security Source code Concurrency (computer science) Moment (mathematics) Fitness function Sampling (statistics) Control flow Numbering scheme Statistics Sequence Demoscene Process (computing) Order (biology) Right angle Queue (abstract data type) Figurate number Quicksort Multivariate Analyse Frame problem Slide rule Dataflow Game controller Perfect group Open source Device driver Translation (relic) Number Twitter Power (physics) Sequence Causality Raw image format Multiplication Interface (computing) State of matter Code Data transmission Power (physics) Frame problem Graphical user interface Number Hypermedia Event horizon Software Thermal radiation Network topology Scheduling (computing) Freezing
Group action Scheduling (computing) System call Thread (computing) State of matter Decision theory Workstation <Musikinstrument> Water vapor Disk read-and-write head Mereology Stack (abstract data type) Encapsulation (object-oriented programming) Food energy Data transmission Substitute good Order (biology) Cryptography Hypermedia Encryption Conservation law Vertex (graph theory) Endliche Modelltheorie Enterprise architecture Concurrency (computer science) Digitizing Data storage device Drop (liquid) Database transaction Mereology Instance (computer science) Encapsulation (object-oriented programming) Sequence Data management Arithmetic mean Process (computing) Befehlsprozessor Computer configuration Ring (mathematics) Order (biology) Buffer solution Interrupt <Informatik> Right angle Queue (abstract data type) Encryption Quicksort Point (geometry) Frame problem Asynchronous Transfer Mode Socket-Schnittstelle Module (mathematics) Motion capture Device driver Drop (liquid) Generic programming Power (physics) Twitter Sequence Broadcasting (networking) Latent heat Causality Term (mathematics) Software Computer hardware Conditional-access module Wireless LAN Condition number Form (programming) Task (computing) Interface (computing) State of matter Content (media) Plastikkarte Skewness Device driver Data transmission Power (physics) Frame problem Transmitter Number Software Computer hardware Calculation Charge carrier Pressure Scheduling (computing) Local ring
Group action Dynamical system Scheduling (computing) Building Digital electronics Code State of matter Multiplication sign Direction (geometry) Mehrplatzsystem Source code Workstation <Musikinstrument> 1 (number) Set (mathematics) Client (computing) Mereology Magnetic stripe card Software bug Leak Mathematics Coefficient of determination Bus (computing) Aerodynamics Office suite Multiplication Social class Workstation <Musikinstrument> Electric generator Clique-width Block (periodic table) Special unitary group Bit Database transaction Instance (computer science) Control flow Sequence Disk read-and-write head Ring (mathematics) Order (biology) Software framework Right angle Figurate number Quicksort Point (geometry) Laptop Ocean current Frame problem Trail Game controller Clique-width Electronic program guide Device driver Online help Protein Power (physics) Twitter Number Product (business) Flow separation Computer hardware Energy level Software testing Mobile Web Multiplication Variety (linguistics) Weight State of matter Content (media) Plastikkarte Device driver Power (physics) Frame problem Word Computer hardware Blog Physics Window Active contour model Spectrum (functional analysis) Extension (kinesiology)
Open source Video projector File format Combinational logic Device driver Perturbation theory Bit rate Streaming media Client (computing) Food energy Dimensional analysis Number Element (mathematics) Latent heat Mathematics Bit rate Causality Representation (politics) Utility software Local ring Pole (complex analysis) Associative property Firmware Wireless LAN Stability theory Boss Corporation Overhead (computing) Multiplication Information Uniqueness quantification Moment (mathematics) State of matter Mathematical analysis Planning Computer network Control flow Device driver System call Transmitter Data management Process (computing) Configuration space Right angle Bus (computing) Representation (politics) Wireless LAN Family Writing
Group action Graph (mathematics) Workstation <Musikinstrument> Source code Bit rate Shape (magazine) Different (Kate Ryan album) Set (mathematics) Damping Multiplication Block (periodic table) Software developer Electronic mailing list Infinity Bit Food energy Control flow Data stream Order (biology) Software framework File viewer Figurate number Point (geometry) Polygon mesh Similarity (geometry) Online help Checklist Product (business) Frequency Latent heat Computer hardware Nichtlineares Gleichungssystem Firmware Graph (mathematics) Matching (graph theory) Code Generic programming Computer network Coma Berenices Cartesian coordinate system System call Power (physics) Frame problem Transmitter Data exchange Personal digital assistant Mixed reality Wireless LAN Family State of matter Multiplication sign Design by contract Set (mathematics) Port scanner Replication (computing) Total S.A. Semantics (computer science) Web 2.0 Optical disc drive Order (biology) Mathematics Bit rate Network socket Software framework Information Endliche Modelltheorie Extension (kinesiology) Position operator Electric generator Point (geometry) Measurement Substitute good Connected space Tablet computer Normal (geometry) Right angle Block (periodic table) Freeware Physical system Ocean current Laptop Frame problem Dataflow Implementation Link (knot theory) Software developer Moment (mathematics) Electronic mailing list Theory Power (physics) Local Group Band matrix Game theory Mobile Web Dependent and independent variables Multiplication Polygon mesh Projective plane Device driver Broadcasting (networking) Speech synthesis Transmissionskoeffizient
Source code Patch (Unix) Software developer Feedback Computer hardware Image resolution Software testing Right angle Device driver Implementation System call Wireless LAN
Ivory 1 if my laptop crashes during presentation because I'm actually running test wireless occurred and occasionally things graph the dust gradual switch over to this thing this 2nd much they have a while at times of higher majoring I do wireless stuff if you are on free it previously my mailing list silicate see went about how crap stuff is that don't take it personally I just want a lot of Africa things are as a as a legal disclaimer this is all stuff that I do myself and call commit there's just gives me find ways and let me get away with playing with them and
so what we talking about today but what I've been doing what I few others have been doing the last 12 months and what I'm planning on doing in the next 12 months but based on how much spare time I have what's up coming in a bunch of stuff we already supports a mesh to and all of the normal operating hours and what stuff is seeking a behind us and we then need to implement sooner we should implement a while ago and also briefly about device's intelligence but this is only 1 Alice lots of another trying describe everything is still to
cover so what actually has been happening and then the main interesting stuff that I've been working on over the last year or so as focusing on the shelves devices mainly because said there's more and there's more documentation source code out there for those things than anything else it doesn't hurt to work for the company that makes them I've been mostly focusing on 11 and bots I've been trying very hard to break any of the previous generation stuff so I have done some demos where pressure One Laptop with their 1st gen cotton can't cards in the same laptop all working people become really strange of I've also to talk a little bit of time to make him a work on the 11 and cards which was mostly an exercise in figuring out what had changed in hardware and in the and again that have mostly been our I'll just I'll talk about that later there's been some interesting issues getting Palisades support working for taking mode which seems pretty much everyone else who wants to use wireless these days has some kind of mobile device or laptop with a battery and it are getting callous saved correct how safe handling when trying to act as an access point is pretty important otherwise things just block of someone asked me to make an ad hoc 11 and work so I did that was another mistake some interesting there were a bunch of interesting issues surrounding had what what what we called the packet transmission power control which is just letting with program the wireless card to translate an individual packets of varying trade varying trends power rates which turns out to be really useful when you're operating in environments like this whole way you know to speak to some clients a close by and low how transferred powers and sometimes they're far away at high transit Housley mitigate interference they can have psychotic control and how how much interference your access points your stations having with adjacent devices and I've been since I'd have had the but a whole lot of stuff out and at cling myself up on how to get a device and network stack molding working mainly because Prince have to but the stocks and try to do try to do per-packet princess dividing is an exercise in hilarity and I think it's really stupid so I will and not reinvent the wheel but we don't really have a generic thing that devices can do looking with we provided that the basic building framework which they'll you caseot but nothing on really on top of that to let us do interesting things so I started to enough for the there structure are there being somewhat mothers that has it all been me my sleepless nights on view the of uh Mumford sitting somewhere there has been working on the finishing up their 11 mesh support so thank you for doing that I don't have to makes me happy as somebody else is taking care of Alberta has been working on bringing up to bring the Intel driver up to date and there have been some fixes with Barry linking the RealTech drivers but by and large mercy of wild strand a pretty much and unmaintained so if you have a known terrorist how that works good for you and I'm very surprised the main thing that I was working on this the last 12 months has been to get support for all the latest at the oscillation in cards and what links did was they told the internal driver and they shouldn't with big making Linux driver until it looked but but didn't look like the internal drive right and then in many ways what a Linux drivers knows what this basically means you take all the driver source and all these nicely extracted ways his remove all the distractions go Europe flat driver in 1 directory there's no distractions body that funnily enough food in fixing the actual blood right turn that the involves and making analytics drive unnecessarily aligned in the same way so it did mean they didn't have to deal with all the extra crap surrounding supporting supporting the Windows and Mac OS VxWorks an arbitrary other operating systems but what it did mean is that it whenever they want to add support the new chips after that it was just a case of take new internal drive and port changes a lot because as they started making it more Linux see they removed the ability to just simply do patch me and I come from from World War I really slack really really slack and I don't want the start having to hand cherry-pick and hand merge individual fixes when the demand of changes required for some of these facilities while she is actually quite big right I don't wanna be a guy that has to do all the radius stuff and all the baseband startled calibration stuff and any other boats that happen to have had to to to crop up in people who don't hardware-specific will play with this stuff shape is but and I wanna fix any of them so I took a slightly different graph and what I did was I went through the ridiculous internal process to get legal and engineering approvals open source the how current that we ship to few few found by way away now I'm not the 1st 1 to do it because Luis Rodríguez that there are thought ahead is that opens up the nonliving and stop at the source and some level could be 11 and stuff it was also the there's prior is actually using a from previous user using now for a few years now write the difference here is is Identec I wanted to take something that is as close to what we actually are and going to ship to customers versus and snapshot from 6 months ago that we've spent all this time trying to put like hand carved out all the all the stuff that we don't expose to people and then release it but is not actually should be on anything primarily because I want to pick up bugfixes from everyone else's work right we have hundreds of entities fixing of all these bugs letting chips that support and wide bugfix support should be do vendor merge fixed conflicts rumbling how she did ripening in no way that do I really wanna spend much time figuring out which bits to merge to fix a bug and biological actually seems to be working out quite well because now that the rest of the the non health suppose all the crap that I need for the new chips I could just emerges from the from the internal code base sticker on website and merge them over into freebies and it just fix it so keep doing that as long as I can but the experiment seems to actually work on analytics a kind of surprise I managed to pull this off from I don't write any wireless driver from scratch a said I'm very very slack this is different to what everyone else in the in the in the WI-PHI community at open source what community is doing at the moment because they're all Linux group company shipping Linux products and then Linux
people a fair dealing with crappy internal of reference drivers in a multiplatform and you have to support with all this chip bring up an engineering processes in regression testing Wi-Fi Alliance wife acidification over all the stuff that actually really matters that is too difficult for them to deal with that and they are used to this current being not necessarily clean so they tend to make a new driver and then you have to problems right and and the more people who deal with the linux wireless stuff there's a lot more support but it's quite sporting and trying to keep things up today is actually a lot of work so I'm trying and trying a different approach where set I'm slackers health so how's it actually working out I wrote all of the initial drive glue the driver itself not me do with that idea made changes from scratch in the persons and a whole bunch of of the reference product it turns out the people record inevitable today so that was actually kind and I also found bugs and 1 extract for this much the same reason alone and then the help comes from QCA and all I did the hell is I have a great big city script and I can understand script that compile them all of the stuff mainly to do with FPGA bring up so the hell that there is basically the same as what we ship minus FPGA code which you guys will never be need to use and it works as well as long as the API inside the house inside QCA doesn't drift too much from the current API so I think being involved involving the the previous DAPI API in the 2 right in in a direct which I think is right and there are some radical functions inside of the health in order to make in order to mitigate the fact that there are some major changes I think it is bogus and they should have done on and this is the working OK right I mean I think that the height doesn't change all that much it also means that we have 1 wireless driver support all of those needs in that list now some people have commented that having a a not 11 and driver in Linux and eliminating driver and Linux means of both drivers and focus on what the driver does best in my counter that frequently by saying besides the very 1st chip for the very 2nd chip the rest will look much the same anyway and to the point where they actually have some of the same bug all the way traceable through the different resolutions of that sort it turns out that when they have bugs and say interrupt handling in act like a they also have to figure out how to fix it in at 5 K in the non drive and so now they've got 3 problems that have the internal drive an 11 and driver among 11 and driver which sort of speaks to the hardware that mostly the same way with some extensions and they don't have to repeat the same work over and over again I said body that's hovers close enough looks close enough together to just stick it all in 1 driver so actually what it actually works really well and comes from the next thing I did was I got fed up trying to protect the bonding so I should hold a bunch of of tracing using LQ and what I've done with a accused primarily did about the dis the transmit receive descriptor handling when we when writing said transmit descriptor handling for the new driver the new chips so break out of this moment give you should what the about them in the next slide point sorry the accused of just you know let you shovel bunch of binary data into a file and be really nice it could show she wanted it was soccer that's a different story and then use 1 can grab that and read and do whatever the hell it wants to it so I have a use land process which passes a bunch of people what's effectively TOP structures that are defined in the dry and that in the in the driver source that lets pull out some of these interesting about stuff and ended up using this to not only the but the initial and to bring up all the newer chips but I use it I added troops to figure out all of the IT enabled Jake so I could run CDMA for carouse at a time and then look at the bubbles to to see what the hell was going wrong and it was really nice we ever do this without using printer so but I'd like to eventually merge this with all the other wireless drivers in the wireless stacks so I can do things like get per packet traces showing you know I received a frame with the sequence number and blind and edited 11 decided to drop the original and decided to stick it in passing you or decided to do blah work-up wire in order to be able to do things like you use of 4 and a half an hour set up loading to Log everything to to and from that particular format address and then do post processing of that law when things events that you screw up because when applying our takes hours or days these to screw up and again projector budding today's is really sucky come so this is the kind of information like a summary information that I get on this here is showing their interrupts the transmit descriptor handling and I actually do print out all of the 2 the descriptor fields but for doing it timing related on discovering all I really needed here was when the event happened and what what was the result so that psychologists in microseconds and the this showed that the reason this was to show 1 of those quirky bugs are found in the driver actually looking so this particular instance 16 so that you frame interrupts as I got an interrupt me interrupt me that the relevant B is the end of transmit list and then you check the 1st descriptor on the transmit of the transmit Q and it's not completed and seems to vary scratching head during the holidays told me that there's a packet there for me to hand when I went to check it and it's not ready and then sitting on microseconds later I get another interrupt this time saying TX is done and the same descriptor is now magically completed sigh scratch my head and what the hell's going on here I wanna upstairs that the guys who did the we did that you you do the girl coding and say what the hell and electron so what happens Adrian is when the when the DMA engine hits the end of the list it signals the end of list and then when it actually finishes transmitting the packet it sends sends tree a transmit done but hit the end of the list before it finishes transmitting the packet right and that that that that the transmit interrupt mitigation code in the driver power was set up in a way that only ever transmitted that transmit don't interrupt every and packets and relied on when you hit the end of the list to get notified that you have be a novelist and process all the drops of the low point so this is magic so race condition we're not doing a lot of traffic you can actually not get notification from a packet being completed all fail until you to the next yeah right this only shows up when I started doing this dividing and going why am I seeing from that I so I think this is
like all work all the reasons why the wireless is working is crap like that the next thing was try to figure out what was going on with the young rate control so I I took that the sample rate control model and made it maybe to 11 N. which was mostly case of teaching at the NCAA that Lebanon rates aren't bad and then doing a little bit of fudging futurism not there's an easy go into here but not listed the rate control code works and I'm not I I wanna go down the path of making it excellent rate control model that handles situations well because I want someone else to do that I have a rate control code doing good enough and any a college you write new rate control models to select when when the transmitted and and how to transmit so my my task is done right about what has to be done but again there's no debugging in this kind of stuff there's no there's no way to see what's going on walls the things running in the only the bugging that was there was to type in C CTL and get can print after which again doing tobogganing if the early dividing method you have is constantly tailing a log files and you know dumping out all the rate control of entries is just really stupid so I have together again another of till the I optical interface this time specifically to dump out all the rate control information for a given station that's associated and then use the land is pretty bad stuff that looks something like this and the
colors suggested indications Institute to match like that that the science that much of which rates it's proving and that the purple and the dog and the and the and the blue and they're telling you what rates currently active and if I can if I do with them quickly see have them on the same
AP I was a few minutes ago so I've got I actually have like data and if I go in peace of the axis point of it 0 come on it's great yeah you guys need wireless to work right so you can see that the static on the line if I cover is again at around I can do something else and despair that's what I really hate laughter yes not at the signal strength is still too good the access point you can see that it's jumping around I can actually track what's going on in real time I can see what right it's currently selected and when it goes up and down I can see it prove other rates and look at the that the the current error average and watch that go up and down and is not impressive at the moment because it's it's 11 so the associated 11 a access point but when you actually associated to 11 and that's when you doing a couple hundred megabits a traffic records everywhere and even just slowly moving a laptop around causes the wireless behavior cuckoo so actually nice to watch alive rather than telling a lot
file because as I said at before
that so that's what I've been doing my nights in 2012 up to now so what's going to happen next I'll go into these in little more detail but that's basically the list of concurrency and locking needs to be fixed that seems to be constant problem previously that's OK means is there's always get stuff for us had gone elements everyone hates fragmentation fragmentation at the at the end 11 and which is separate from the IP layer mind you and inherited 11 and you and you don't do fragmentation when you do the aggregation so we a high-speed 11 and there's no pack fragmentation involved but in order to meet the wife acidification you still have to support fermentation handling both transmitting and receiving it when you're doing 11 sorry I have to fix it at the moment it's actually broken on and I have to move on remove all the drivers over to the new model of stuff rather the transmitter really out with rather than the old friends model and a bunch of other stuff background scanners used the station's 11 and aggregation from there should be nice our clients they pass a support Sydney goes in and out of actually switching itself on and off in order to save power column and a bunch of stuff that we actually get any 411 see involving regulatory domain and our rate control extensions and hopefully among the dog and handles the upgrading some of the mesh support to get it up to the current specification and interoperate with Linux so I hope that actually happened 0 this is all being done in my spare time all basically as a function of how much sleep I get an error in inverse proportion right so the more work I do mostly by getting some the 1st thing is regulatory the FCC can be it's like a bear right it's sleeps until it's hungry and it wakes up and gets very angry whatever's around and and this is this is still obvious now right there's there's a bunch of rules for the like what frequencies you can transmit on how long you can transmit how much how you can transmit and we need to update our infrastructure to support all crazy rules that every country house and when Santa this stuff in using years ago there were only a handful of regulatory domains that encompassed entire continents and now individual countries have we variations on what frequencies that had allocated to transfer there are transferred on so in order to meet compliance from not only at the stable crazy European and stuff in asia that's going on we need to have money to upgrade the regulatory domain handling mostly t to set up so I can actually have a regulatory domain country rather than 15 hundred regulatory domains of the next thing is that we have done have to add all the new frequency rules for all the logic that is actually Wi-Fi so on people doing 11 18 60 gigahertz for doing PCA LPC II of wireless arm and that will that starts off looking like 11 associate like a station that 2 pp stations and you could do why why over it but what you bring out there you go encryption and you set up the encryption state they needed that looks like a hopeless PCA and you speak to some like embedded in the new chip or whatever inside projector and it looks like a media devices of crazy people keep wanting to use the TV spaces for doing Wi-Fi and let me tell you what think is really far 400 megahertz really really far no I haven't done this because I don't have a ham radio license when I have an excuse to get a ham radio III may on someone what form and we megahertz cotton let me tell you there's things a kind of from of the other thing is the literacy is coming and they actually have 80 megahertz channels 160 megahertz channels and then split 1880 megahertz channel In 5 and so I'll also up regulatory code to handle the concept of arbitrary channel with on because we also defined in 10 megahertz stuff and some of the vendors like telemarketing and I the big we have hexamer drivers through things like B 3 and a half million Y. him don't ask me why did some crazy or something but that's the kind of that people are asking for patterns under this they were doing this for and 2 and 5 the 2nd stack individual subscribers on 3 and 3 . 3 a half and 2 and a half meters wide channel rather yeah you right for 420 make I think they want to be a due to fit inside the old UHF channel allocation very long so my problem right if that problem the other thing is is that that the 900 megahertz needs actually have special regulatory domain entries for which is kind of bizarre but it just happens to be the right way at the time to to fudge doing Nonnemaker megahertz makes that are actually cheating makes that have down-converted glued on them so I want to try and make that generic so that I actually have not a megahertz of regulatory domain entries for countries that allow number megahertz operation without a license and then you have a different way and say 0 by the way this link is actually not a megahertz in our solar separators to make it so that I can be compliant in different countries and the other thing is that up until the white spaces stuff all the channel representation was done in 1 megahertz increments which is fine that's what was that the 1 with the TV stuff the the channel she now fractional channel fractional freak megahertz so it's funny kilohertz 250 kilohertz increments and the newer chips that we that we put out there well what I say new I mean new within about 6 years ago a lady tuned to arbitrary kilohertz offsets sorry people who put down converters density UHF they would be opportune select and 20 . 7 block right answered at some point you have modified their channel representation code to do that and that's a bit of a nightmare the
next thing is is with unfortunately the each driver had his own idea of how to do transmission rate control figure out what what what transmitted like what's speed what options to to individual stations and the fairest driver has a really nice API for for doing this but it's separate from the rest of the stack so Rui did a bunch of work to do array control infect the model interface and edited and edited 11 but it only does not alone in rates and so when it's used for chips that do 11 and there's a whole bunch of like behind the scenes hand wearing to translate 11 inmates than unlimited rights to the rate control or doesn't lose with the plot and so part of what do this year is actually tree out of radiation 11 brake control courage to do 11 and entropy get ready to do 11 AC so I could use it for all the drivers because I can't fit of having this really nice control occurred in the there's model that economies elsewhere but there are some technical issues with this which that the slide goes into the other thing that I'd like to do is to tied into that that the the packet scheduling part so instead of the rate control code is being told your present the station X what should I do the rate control code should really time hand-to-hand with that the cure scheduling sorry which station should I transmit to next and then housefly speak to us because then it can track how busy the areas and on whether the station is is close so far away when he tries to go quickly or slowly and they can make a decision as to you know how to schedule this stuff in a more efficient way we don't have the common problem with open source Wi-Fi where once for a client screws everyone else up right his monsters OPEC packet scheduling stopped packet scheduling stuff between stations is done on some kind of 5 from method and once for a client that everyone else up gets the same like this the same scheduling sliced are in the same order that everyone else gets and then
there's the whole people forgot to put walking into the air 11 laminate unlocked from giants sorry the main problem here is of that it as a generic thing and in the previous t y 0 and networking stack of the transmit pockets as unlocked as possible so you can have multiple entries from multiple upper-layer processes like I perfect Firefox Chrome and injuring the driver trends related through the TCP stack all once so if you have a thousand TCP sessions and they're also they're all active at the same time you have a thousand concurrent entries assume you have a thousand cause there are thousand entries into your driver at once and the network stack tries to put the onus on on chewing between TCP or UDP flows on the driver it doesn't do any queue discipline itself ensures that would hands packets off to the driver that in societies secure UDP followed the or packet watering is is maintained and freezing a drivers that's OK you basically just take a frame to the driver and the driver doesn't really give a crap about which TCP flow gets which packet when and now the sort of begin to you people having to care about that for different reasons but for Wi-Fi because I have extra state on top of that I actually have to care about what order the packets come into the stack and the wall represents the wireless because if I get that watering slightly wrong at the receiver end up dropping frames because it thinks they're out of water it'll have already seen this sequence number so sort of way on and there's a whole bunch of interesting concurrent stuff to do with someone's transmitting and so was receiving and samples the reset switch was almost translators was receiving something changes channels at the moment when I actually have what happened last year the year before was you could be transmitting at the same time that the recent path was changing the channel and they are currently working the DMA engine transmission where you reprogramming the arts the that the everything's offline when you try to do that and the chip walks up so again some of those what we ask bugs people having with Wi-Fi which is the states stuff not being correctly locked and defined and the transmit power not being correctly locked in defined and someone removing giant from all of sorry thanks guys yeah the idea of the details
about what's going on under the hood you packet transmission starts with the letter and the the the the W and Z W and X that eventually the interface that a frame and you get multiple processes altering that once there a couple passerby can flow you can go directly I've transmit get encapsulated content to the device in a harbor gets that eating goat transmitted and then they wait a 2nd I need for this energy because the nodes asleep right and sometimes there's management frames being we got the side using this war interface that sometimes sometimes doesn't need it at 11 and digital encapsulation encryption and then they get past the hardware now all the other the other key thing which also by 2 is sometimes we receive a frame for some odd reason the TCP stack decides to transmit a friend when you've received 1 right and so what part of the great big blocking fiasco in freebies you can't hold locks were you doing driver stuff and TCP UDP stuff because receive causes transmits with invested at in the same in the same manner of our whole path right it doesn't it doesn't do deferred schedule pushing into a you it can actually pass it up to the to the United passes up to the driver so you can't just be even hold breaking walks everywhere is serialized as you get more ordering issues in the light of what's out there for conservation happens sorry the problem there really are and then what happens is the driver takes the frame and then cues all the like the the driver specific to 11 stuff many to land top and then just for don't capture lation because some cards descriptor calculation some cards to harbor in some parts with software that takes the entire mess and passes the of the building transmit and off now if you don't keep all this stuff exactly in the same order as the VAT quantity you encapsulation then you can end up passing stuff the the hardware that's slightly out of sequence that only happens when you're doing a lot of traffic we have a lot of sending for this was obviously where head this stuff I thought it was just it was yeah 1 holds that happen and so it only shows up when you're doing say 10 I turn I put TCP sessions you start cross and then it was torture sessions and opens the 100 TCP sockets and only because it all the retransmissions that were happening in the TCP layer I did notice the receive side dropping frames into I started looking at the access point steps on the receiver and this week we keep a lot those noticing whenever I start form I get lots of drops what the hell right boiled down to things being passed to the hardware in a slightly different order than the original stack got them in the 1st place so as I said i've transmit doesn't do any kind of ordering of queuing it leaves up to the driver which for related to the means that broke the the stack and the drivers themselves have to maintain the same packet water so I have to make sure that choose them into cues in the right order and that when like the driver calls its dispatch method to actually stick stuff out of the I think you or whatever Q has if you knife transmit that actually just like pull them out and put them in the harbor in the same order so if you don't have correct skew handling locking over your driver transmit power you can get me crap happening where you say 2 concurrent threads tried transmitting from the I get cold start again so we call at start which will link you have frame and then I'll Call the transit method to send it so you have 2 things lockpick you push in the right order and borrow from friends have i've transmit polarized Stockholm so you get to some separate friends calling out start and birthrates race to DQ frame so sometimes the Nobel race to the Q of the frame and first one will all settlement will win a double that doesn't really matter because whichever 1 you choose a friend 1st will finish transmitting 1st right but what happens in reality is if there is any kind of locking going on or interrupt comes in on 1 particular CPU causing you know that particular CPU's Africa threat to block just a little longer than the other 1 you get the subarrays conditions where the first one the 388 user-friendly free PDQ's a 2nd frame an interrupt comes in on friday CPU 3 B continues translating and wins the race to get to the hardware right and three-day comes back from handling some interrupt continues running but it pushes the 1st frame after the 2nd frame and the receiver drops that kind of subtle pressure right so that's what I've been trying to fix and it's a pain in the arse so sorry i've wrapped record-breaking walk around the transmit power and local order issued happened but it's good enough to but the rest of what we're gonna have to to do is come up with all and whether DragonFly BSD around this is they just put a great big long around the whole wireless infrastructure is there have to fix locking problem problems which no and sort of what I'm yes but it want explain why in a minute right so for of fixing and we're gonna have a enacted implement you know what all the other taking the drivers 3 which is there I transit method sticks it into a ring buffer and then grabs a lot if a grant lock transmits if it doesn't grab lot leaves and the I always schedule the deferred transmit task you entries and so the driver itself ensure ensures that only 1 copy of the 1 instance of the driver transmit thread is running at once so we'd enforces the Italian ordering and it's kind of silly to have every you know in network driver have to implement the same kind of thing just to get around this semantic survive transmit sorry there is I've started some discussions with a few people to try and come up with a better way of doing this so that we can do it once and then like network drivers and the wage of 11 stacked just reuse the same Xu discipline and dispatch model was happen loan and apparently Jeff Jeff Robinson told me that can have the same problems so I call this a network in terms of networking and storage approaching the same contact with a transaction speed of yes the other thing is
that of when handling transmit this all this extra state that people don't really realize is going on mostly with power saving and and and and q inside you know people seem to think what was magical thing we're crap works but you imagine if you only had 10 base to when you needed to try and unify everyone else for the media it's like that right is a broadcast medium 1 person gets to speak in a few collided that sorry we need to as part of the whole transport overhaul push all of the trend that the queuing that we do for each station in out of the driver into the age of 11 last week nor is there how many packets acute to each 1 of these potentially hundreds of associated stations so we can make decisions about when to drop packets of which communicate you know about back up to the stack rights healthy CPU back hell off and will allow you to eliminate it is that of hopefully better schedule packets in a in a fair way right hopefully someone else will be involved because this is useful for things like carriers in an enterprise people building a peace but we'll see on the other thing that
people keep asking me about his background scanning the background scanning is something that a lot of 2 in the background to check to see if there are any other access points all the of the access point signal levels of changed so that when you leave the room he can immediately associate to better access point rather than waiting until you just last too far away this to receive anything and then having to go through the whole scan check to see if there's so you can associate with try associating blog right so if you wanna be taken more seriously and that helps you have to do this kind of thing otherwise walking around this building is a pain the arse of the problem is is we actually have backgrounds can support in the wireless stack but the driver needs to be a bit smarter and I turned it off on the there striving because 11 in support requires that the dog dropped frames at any point because it's like the aggregation stuff has a window a transit we the same as TCP act sequence number accuracy was numbered from windows work and if when I change channel do a background can I just lost the transmit and receive use them both in the out to what they currently seen in France and so in or instead of fixing here I just turn it off because I know that we have to fix that fixing it means I have to do things like when I'm going to change channel take all the frames there in my receivers as you stop them somewhere else do the background and put them back and then hand them and I 1 after the but that just yet but in order to do a lot of other interesting things like support multi stations to pp I have to make that work so this is highlighted do this in the next year and the other thing is people have really power conscience and so we want the ability to be out of put the station card itself to sleep and have a wake-up automatically just check the axis point whether is actually package ready for it now again a little better 11 have all the infrastructure in place to do this but for whatever reason it was never implemented in there stripes and all the code in the highway there is a card is that the thing off and on again but no 1 sat down and made it that's and the reason I haven't done it is primarily because I looked at the Linux guys try work and Linux and it still doesn't actually quite work well because it turns out that if you try writing to the hardware walls to and all your laptop because strange occurs like you try to make things up in the middle of the PCA transaction and the whole what happens at that point right down crap like that and since I I have a spectrum analyzer here but I don't have the PCI Express bus analyzer because I'm not crazy you but I don't know someone because they cost more than a house so you all right I wanna get all of the the current locking working correct so when I do things like like change shall I know that I'm not transmitting receiving at the same time I know instructor disabled I know I've turned off calibration so that when I do things like weight that make up put to sleep I have the infrastructure in place scenario that the wireless card is actually not being spoken to otherwise the budding issues like the debugging and we get bugs like I ran this for a day and then suddenly she can were annotated males the Linux while same disabled save like holy crap the sun is that everything is right and that's where the body and right off I would actually make it work and not just simply have track so at some point I'll do it but it's going to take some time known and part of the the other part of the rings uh stations I palisade is the trend dynamic transmit power control where if you close by DAP like here transmitted from power right and I actually sat down with SamSPECTRAL either when I had my wisdom tooth pulled out of all times because the spectrum analyzes about the whole thing from my bed right and so I Dragomir and spent 2 days in bed hooked up to a spectrum analyzer the budding this because I couldn't do anything else problem but took it stop me I was drugs and it stopped concentrating on how happy I felt so yeah not but the drug help being drug help things like figure out why would I write a transmit power of 0 the coder's distorts as their friends it's 0 dBm that there bugs like that defined right the little things like that I have 3 more wisdom teeth the pull source I'm pretty sure I could have that there is this true instances to do interesting product right you circuit anyway so so the so called also for about 4 days I sat down the the pilot the of varying ages there are snakes and test the dynamic power control every 1 of them in order to figure out what the hell going on so now we have to have dynamic power control and previously working for the wireless that doesn't that nothing of that blast that knows how to do deeper no transit power-control but nothing is taking advantage of it yet but the driver does dynamic power control it works really well I'm I'm shocked that actually works because the set I was on drugs that was kind of funny and a other 1 of the other things to try get right in order for people to use the stuff on a horse especially is doing power support as an access point which means where your devices asleep you don't try transmitting anything to it and when it wants to wake up and says give me a frame you get exactly 1 frame not to and definitely not 0 sorry sorry but again a minute 11 had to have supported doing the legacy Palace itself but the Advanced driver I broke it when I made 11 and work so I decided to actually sit down and break the main reason was body was if there's any frame skewed in the wireless drive when their device comes along to say I have a good thing for me you actually have to not only check the state of the wireless stack but all the driver as well which was not really done so I that work and it was extremely hot but I made it work so now when using a laptop or mobile foreign direct get decent performance when the phone is aggressively to repulsive on but there's lots of strict timing requirements because when a device wakes up and says give me a frame by a peaceful frame you can have up to like dozens of other devices trend transmit and so we have to do is find a way to sneak that frame that you're responding really close to the top because what you don't want have is 300 frames in here right and then the device was stays awake for a few milliseconds against I haven't heard anything yet so they go back to sleep again and then the frame goes out right and there's nothing in the spec that really says how long leases with doing this legacy power-saving words so you have to be quite sneaky and really schedule enough frames the hardly keep busy and normal so when events like peaceful come along when you put the frame onto that q it goes out within a couple of MS otherwise as said we should have
Eisenhower that what what's happening in the future the reason you don't do global let people around while status has 11 AC will bite you in the office because they wanted to 1 2 and 4 million packets per 2nd then we get up to 40 bits per device sorry don't do global blocks in the wireless stack is the general and here the reason that you don't do global optima while a stack is even knowing the device will go up and looks like a anything cotton goes up to class this still that 11 step estate handling you have to do so the last thing you would do is graphically John Locke 1 among and say the Palisades Q right the previous guide to help a lot of work to unlock things specifically to the other driver cards easily ID to Britain and the given class so we shouldn't repeat the same mistakes that they've fixed from the testing things that eliminates the user looks a lot like 11 and except they have much more dense and proteins may have died Dublin and quadruple the channel width sort 160 megahertz channels or comes and the concept on the market is a megahertz wide predict don't 260 megahertz wide the other a that they do not wanna do that at some point the unity multiuser my sorry so they think that they would a multiuser my most directly translate multiple clients at the same time rather than 1 client the same time so we keep the air the easiest possible the current generation stuff gets to almost a gigabit-per-second and easily breaks a million small packets the 2nd on 1 1 on 1 2 and 1 and that's 80 megahertz we need 160 megahertz that doubles we need 160 megahertz with forced readers that of 3 and they are all active that doubles again so things get a little bit crazy column the last thing I wanna do is have to fix lock contention again so I'm not gonna put a global walk around a while a stack what needs to happen
somebody else needs to do the work is what needs to happen but I AM probably gonna work on the on the regulatory related stuff in the wireless speculated stop so I have to do things like have the regulatory have representation handle these new channel Whitson and channel set up so you have to handle that you have to handle the notion of the 11 AC transmit configurations analysis not just the number 2 number on how many streams and how many how wide the channel is this combination thing which like this make this 3 dimensional 5 dimensional space but you have to represent and at the moment transmit rate is 1 number and that's just off the cuff this all of this channel representation stuff where you start to support legacy 11 b and 11 g channels and then we'll and stuff gets land top of that NAC stock Atlanta about because when alone client comes along the 1st thing it does it associates is a legacy climate announces by the way I do 11 and eliminates the negotiate and and the manager should eliminate C. right so you don't build see only devices still has to support pretending that it does 11 b 11 June and that so little complicated but it's not that complicated I can learn from the mistakes we went through at work so we do a better job but there's also a whole bunch of new ideas information elements and negotiating DHT that is straightforward because it's in the specification but I don't wanna do it then some has to hold the driver now the nice thing the nice thing is all the way see stuff from way yes I know as so the drivers a pretty small but on the flipside means that they run firmware so when have this nice open-source driver crap that's going on but we've been starting to open-source firmware anyway so the the whole is was going to happen at officially there's no plans for its 1st also open up the way for any of the that eliminates chips but we'll see what happens right they said that about USB and somehow we manage to open source the USB chip from wednesday she can happen right column but it does mean that pulling the driver would be the multi year making it stable path that making ghostwriter stable as being however will be that is a multi-year path waiting for firmware updates from the vendor which is anyone who's done whilst drivers with family knows who the hell knows how how how stable the phone will be and when all stop supporting sorry you this is just what happens with all the 11 AC chips a tragedy thing about all but yes that that that the infrastructure stuff these changes in the stop being as efficient as doing gigabit multi-gigabit TCP right and with all that crazy cracked looking that goes on eliminating is kind of special because it's PC-AT over Wi-Fi and that's kind of frightening and luckily it done on the chip right I don't actually have to do it I have to negotiate eliminate the those 60 gig and then this kind of magic happens which is good cause I don't wanna write PCA like that just scares the shit out some there's a wireless driver for in Linux and they don't have to do too much to get working because mainly it's making sure your channel representation handles representing 60 gigahertz and what that's done again it associates and limiting climate a bunch of information this as a by the way I do this magic crack and then go all that's cool light is magic right and then suddenly all happen so the actual infrastructure in place isn't that bad and someone is to pull the driver again that the driver is lots of them are on a chip sorry the driver itself should be that difficult column but I have no idea specifically I speed I've I've stayed away from the technical details of people can't claim that I've been tainted but the idea is that people who build these PC devices like these PCA embedded like projectors televisions valuable BearingPoint and I don't know if they don't have like an open thing working Wakin PCA unique into something random I don't know the energy that's but as I said you negotiate 11 utilization 1180 and suddenly a PC-AT device using your boss he got a call your appreciate about that's minus notes but would go into any more detail at work because call collect payments only hope peace to make
this work and I Gavin has been working on top of the CAE so
happy the next crazy thing is people for some odd reason you want to you all mad OK Bluetooth is a pain in the arse from and for some odd reason Apple have this thing where you can use Bluetooth and Wi-Fi and suddenly your Bluetooth and Wi-Fi devices start doing this because Bluetooth respec has this concept of having the Bluetooth fight beyond something other than we the strangely graph framework and the Bluetooth framework In our look really nice because you could in theory Plug and graph model into some other thing to speak witches although it is somewhat of right that would be really happy but because Apple and a bunch of our products do have this concept in a while a stack of you negotiate the which is that negotiates that they also speak Wi-Fi and then they peel off individual Bluetooth socket connections over Wi-Fi transparently if anyone wants to work on that please come and see me because it's kind also but I don't wanna be the guy the figure that crack out that it would have been to that looks like a minor some the other thing is Bluetooth coexistence your Bluetooth Wi Wi-Fi Bluetooth link what I make don't stop overreach of the time especially with the car generation hardware with that the Bluetooth link on the same guy using the same PA that the power amplifiers in the same antennas as the wife I knew that they have to be coexistence and so a lot of the family devices due and firmware if you don't Ferris device I have all the register settings somebody's a rock coexistence cars I have all I know the Wexner actually written immunophilin SELinux developers was telling them how do coexistence but I wanna do it so again if you wanna interesting research project where I give you all the registered details you go and figure out ways of which coexistence that we implement from scratch I'm very happy to help you and another that 1 of the last thing that we don't do that which we actually need do specification compliance these people which is not the taunting it's for having your 2 stations be to another station without going through an and this came about the things like streaming to televisions were the last thing you want is your your television data stream to go through an access point but then retransmit said to the to the TV right because Lebanon is fast but people have to access points in 2 socks so what they do with Peter is the station's announced that they support PDP and they discover each other they do a little bit of a chat and the negotiators if 1 is that the the the the the masters access point in your slaves right at the point where you've negotiated which 1 the mastering which 1 is the norm master it looks like a speaking to her state right but I think we have a good support for that again I wanna write but if people would play with viewers streaming style to televisions that do this is the kind of stuff that we need know there's a links implementation of PDP and it's actually pretty simple so if someone's or another some again some of the research project this would be relatively easy to do and basic PDP is doesn't require drug modification the main difference here is there's PDP optional will go shape Europe's session but you say hey let's do up PDP the data on a different channel so say you you speak 5 the and the television speaks by the greater access was speaks to get what can happen is you negotiate with the other guy hey let's go off to fight the and our data exchange become back to tribute to be mobile station right so even though the the axis point doesn't do 5 your TV your token still speak it that fast rates symbolically 5 B channel in order to make that work I have to get all the background scan crap to work fast so that I can do off channel transmits and not structured data from the current dataflows source I will undermine do that anyway but again it's someone it's people working and they they get this for free so again what infinity please come and see me and the all that's that's all that's needed as I said Santa this call happened to you may I'm at work on 11 all I need to get 11 aggregation working and getting 11 aggregation working there with him a is an exercise in implementing some missing bits from the 11 inspect that I'd and we use it to unite on the way tedium i works is it the works you that you you birth get transmit time slots and you work early transferred in that time slot and there no access right so you don't actually get explicit acts of this is too active frame you have to it shortly after transmitted the 11 inspectors gives you this ability to delay setting your actions of some unfit on undefined period in the future so what I plan on doing here is implementing the delayed block tech-support where you transmit a bunch of frames and then you explicitly I asked the other and tell me what you got and the other incentive-backed back the response and you can do that MS later on so the planted CDMA is to implement that as a generic thing United narrated 11 to support as normal evidence thing and then we're doing TV you just turn that on his all transmit a whole bunch of crap and the last frame a transmitters this is a solicitation send a block and then the remote and will transmit its crap and send me a block back and then I'm what back American retransmit weighted again and suddenly I get fast for free that's the theory works in practice right if it doesn't work in practice I have 3 wisdom teeth left of the I wanted asking working on match so once we get finishes this summer was we some of the transmit changes off will get 11 and for free so I'm looking forward to getting 11 and and Palisades supported measure for free from and he's working on trying to get interoperability with 11 I'm hoping that at some point we if I ever get enough spare time to make backgrounds can work we can support the concept of having 1 may be multiple stations because the minute I can exist on multiple stations at once I can actually speech would axis for the station on channel 1 and and to sleep at Interspeech matters when channel 100 and then go to sleep and then switch between them and that you interesting things with mesh where you actually said that what I'm going to sleep and then the speed to another set of mesh nodes on another channel and again once I get background background scanning in an all-channel working get that for free and have been happy so I meant giving you the impression is a lot to do on the question that people say will do we really need all of that and the problem is is but you know depending upon what kind of device so we'll use case you have you need and slightly but not quite overlapping set of things so the people running access points they need PS Paul USDA PST which the palace save the power of a package change stuff than EQS many rate control the laptop people need a lot substitute less power that really care about QOS multiple devices is only 1 device speaking to but they need to support power saving the need to background scanning initiative re-authentication fast replication right and running the mesh people need all of that which is fine because he's cool and the developers need much better diagnostic inspection tools which means I have to add them to the stack and that's you takes time so the problem is in order to actually trying and to meet everyone's needs I have to do all this work that doesn't quite overlap what everyone else needs and in the web with semantics is different companies with different needs contribute the the changes to the wireless LAN based on what they need to Google's contributions of mostly Chromebooks the stations make the should not and of their assessed contributions of mostly make a side don't stock and then until stuff is like will have mix need some help and we want to to so we had we add these little extensions to do that right so every every vendor Johnson and implements there a little bit and they try to you know not fight each other too much but we last year in the end the opposite enviable position with there's only made so I get to make the call to what's important and what's not so hopefully some albeit in time to get a lot of this stuff done but as I said it's going take time and if people wanna see um I previously appearing inventors vendor supplied laptops and tablets of what not a lot this stuff has to happen because if you have a vendor like HP adult wanna run these everyone around and so blah and therefore it is the on the block are they going to have a checklist of things in the check this is going to have everything on that list and more and links has that on the checklist but all of its body but it's on the checklist so they waited and we got so if people would like to see the star become you appearing more devices then this is the contract that we have to make work
question the I'm not lying sale of NAC does a of actually similar work it's kind of amusing it is the way hands in front of an animal all shit breaks loose but it actually goes to the all good so thank you to
everyone let's make play on the on on the IRC channel and not and not put up with me because I know I've been but there's a lot of stuff that needs to be fixed and up and think solve novel call call for giving the toys and money because toys and money a kind of fun right


  684 ms - page object


AV-Portal 3.20.1 (bea96f1033d39fbe77f82542458e108105398441)