It's Yeah, I'm doing it tomorrow too Are you good if we keep rolling? Hi, I'm tight. Hey drink your water drink your water. Okay. Thank you let's Move it up a little bit. Yeah Oh, man.  Yeah. Yeah, it's great Loving the whole whole conference. It's condensation, but yeah, what handshake. Yeah, cool. What's your name Chris Chris? My name's tight.  I highly recommend it. Okay Got it got it. Are we good? Chris what brought you here today? I've just got more and more interested in politics Since is there a particular policy or an issue that's really motivating to you For one, I think like Medicare for all is a big one, but also foreign policy is huge. It's just the more important one It's hard to say. I mean, I think Medicare for all maybe is more personally and so you could like vote for a candidate that will for Fact do one but not the other Medicare for all or fix a foreign policy Yeah, it would probably be I mean it would be more of the Medicare for all Okay, and maybe that's selfish of me. You know because I love selfishness. It's totally because we all benefit I like benefiting from things. Yeah, so Medicare for all That is basically like we all pay into a program and we can all reduce our Hospital costs health costs. Yeah, yeah, how much we're paying you know per person for You know our healthcare and also kind of Taking away that I think what really what really motivates me to is just being taking away that fear of Oh No, I can't like pay for this medical bill or oh no I got sick should I go to the hospital because it's gonna cost X amount Why is that important to you? I mean, I think there's a couple reasons I think personally, you know, I've had my share of health issues. My mother's had her You know, she's had breast cancer a couple times sure But also just when I look at the country as a whole I think it would you know reducing that level of stress that That not having health care. Yeah, I have a cavity or I have a surgery that I need to yeah, exactly It's a lot of stress Culturally. Yeah, and like it puts a tear system on these guys can go to the doctors. We can't yeah I was like, I just went to the dentist today. So oh you can report the dentist. Yeah. Yeah. Yeah. Yeah, I hear that Yeah, that's I lose my job. I lose my access to exactly. Yeah, and that just actually I didn't lose my job but I left my My mom works for the state. Okay, North Carolina sure and I was you know on her state health plan, which is great Yeah, and then I switched over. I'm an independent. I'm a writer Yeah, and I'm an independent you look like a writer. I got my thing here. I was like is this like do you on the No, I'm not trying to brand myself for the writer. Yeah. Okay, cool You don't have me like what kind of writing do you do? So what I what I do right now is like digital marketing, but then in my free time I write I like to write nonfiction and fiction as well I'm digging so I can tell you what I'm digging into if you want to nerd out about this real quick. Yeah, sir fictionalized history So like basically like things that actually happen But told from the perspective as if a guy was actually there and making it sort of dramatic like so property Yeah, I named Dan Jones who's done the entire medieval King history. Yeah. Yeah, he's really good because it's basically Game of Thrones, but real history.  Yeah I love that. Yeah, the Assassin's Creed games are also cool. Yeah. Yeah, just fictionalized history. Oh, no, I play them Yeah, great great great great great great. Is that your jam or is that not not even close? I know I like reading that sort of stuff But writing that it's not as much what I'm more present-day or going a little bit You know putting a little twist on the present sure more than you know, it could be laziness You know going back and doing all the research required But so why go through the trouble of like on an individual level? Why should I pay? Someone else to good good health care if I have say I have a good job. Yeah, I can afford my own health care I worked hard to get my job. Yeah. Yeah, I should just keep my money to pay for myself Yeah, I think what benefit do I have paying a Family of 17 or some lady you're sounding like one of my conservative friends right now I'm gracefully. I don't think it's over. I think it's just like a pigeonhole version of like yeah But like say I was like I don't want this school bus family Yeah to keep expanding and taking more of my money when I'd rather have better words and stuff like that Yeah, like if they want good jobs where they can pay for health care Just work go to school and and do the same thing I did why not just that that? That's a lot. That's not the same my point of view obviously. Yeah. Yeah. No, I understand. Why not just say hey Yeah, for yourselves free country. I mean I understand the intuition. I mean I was a you know Republican family Went through a brief libertarian phrase. I was 18 Okay voted for Gary Johnson, and then you yeah, then I was like I live up. It was my Close it was my I was you know flirting with liberalism, but I couldn't you know fully turn my back on my Family right now close to socialists, but okay. Okay. Yeah, but anyways that that's whole What's my own is it does not benefit me as far as I can see yeah Yeah, yeah to take money out of my paycheck so that you can I think it actually does though I think if you look at it from a from a cultural and just from a Perspective of the entire country when you have people who can you know Go into poverty because of their medical debts even if you don't think that directly affects you It does because then we have to pay more and I mean unless we're living in a libertarian utopia where we've cut all social spending You know when people are When they can't afford their private insurance sure they are going on the you know Medicare which would be You know increase the cost of the government of course I am advocating for something that would raise the cost of government, but you know poverty as Well, you know produces things like crime that would make you unsafe Benefits me not to be around or generate poverty exactly and another thing is and going off of that as well If you say you own a small business say you're someone who wants to see more customers if people are paying Exorbitant costs for medical debt. They aren't going to be at your store Putting money into the community know about that's that's an interesting angle It's like it's more money that could be liquid in the exact in the environment Exactly if it's not being spent to pay medical debts that are already outrageously higher exactly yeah, and that's that's a new angle I didn't know yeah, like I knew the one the thing you said before like it helps to reduce poverty That would be like my bread and buttery sponsor that but the whole idea of like you would have more money If you weren't spending your medical debts exactly in my store if I'm a mom and pop shot That's I feel like there's a lot of validity to that. I think yeah, I mean I mean that's how I would maybe argue with with conservatives.  What's the best argument from the opposition? I'm trying to Let me think about that. I think what's the most credible best argument that you that you know from I think maybe the best argument would be Would be more on the side of hey, this might make things more inefficient. You're not gonna get your health care as quickly I don't think it really I don't think there's a lot of validity to the rest of that argument about like hey You're using Japan's and Sweden's system. They only got 17 million and nine people nine million people respectively. We have 365 million people and already an ingrained infrastructure We can't just do that overnight. We can't do it in a decade. Yeah. Yeah, we're stuck kind of just trying to slowly optimize a system as it is now It's not is it worth the financial investment at this point? Yeah to to radically change something that's never been tested on this scale in the first place I Mean I think Before you ever go into a large-scale system. You generally test things on a smaller scale, right? So If you see it works. Hey, it works in Sweden. We're Rhode Island. It works in Rhode Island. Yeah works in Rhode Island Yeah, works in Canada. Oh my you know my grandparents are from there Even though there are higher waiting lines you have to look at other factors, you know Even if you have a longer time to go see a doctor sure What are the other significant factors there? And I think we see success rates in terms of like long tip Long tip that I can't say the word longevity longevity. Yeah, it's like Yeah, longevity in terms of longevity longevity. There we go. I don't know what you're saying my master's in English and I can't speak In terms of like the Your lifespan is gonna be longer. Yeah, you're you know, you're not gonna have medical debt So there's none of that there. There's a In terms of like how much disease People typically have in these countries is like and maybe I'm getting a maybe I'm going farther. Yeah I'm thinking of an argument that's more of like taking the argument They give me and these again aren't my arguments But trying to push it to the corner to say no, but this is a bigger problem like yeah Yeah, we can do all this Medicare stuff. Yeah, people are smoking. I can play. Yeah, people are still smoking. Oh, yeah, like Shouldn't we shouldn't we take that money investment? And stop people from smoking poison because that's driving up our poverty. That's driving. I mean, I think of expenses Yeah, that's driving up our death rates like Take yeah, we can do both. I think we can do both, but I think when you attack I mean granted, you know something like the example like smoking would be one that is a Proactive position rather than a reactive one in terms of health care, which I actually do agree with you I want there to be proactive health care programs proactive. Yeah, where you're looking at preventing disease before it even happens. Yeah but I do think that by focusing only on those things you're You're losing out on a system that is You know that produces things like stress produces, you know a system where people who have money can get better health care Than those who don't which I think is has some ethical issues there. You're not addressing that You're not addressing the financial, you know aspects of medicine. Yeah, that affects everyone Yeah, so I think if you only focus on that you're missing out on You know on a whole other on a system that is just not It works for some it works for a lot of people, but it's still I Think the people who get left out of the system and the people who get harmed by it You know, I don't think we can just ignore that I think and that's here's my outsider perspective on. Yeah, I agree. Yeah, I do We have Elephant in the room. Yeah, sir big money. Yeah, I mean There's an oh bested option. There's an invested group of people like I don't want that rule to happen Oh, yeah, because that would risk that would destroy our bottom line We have shareholders and now destroy our company Everything we work for is gone all of our kids won't be able to afford anything They would go from great coupon off gold dishes to great coupon off plastic. Yeah, what's what's happening? No, what's our legacy here? This is oppression of the upper class, right? But I'm thinking like I mean I feel practically practically not for those people for the employees I feel for everybody to be honest. Yeah, not equally, but I feel for everybody to my politics more of punching up But I still think that we you know, there is a level of compassion that is needed Yeah, so I'm wondering like is the level compassion that I'm extending to you worth Causing the harm that I'm about to cause and that's yeah, is it is it useful harm or needless harm, right? Oh, that's interesting Yeah, I like that concept. Yeah, so I'm thinking like We agree that this needs to be done. Yes practically. We know that there are I know it's gonna be a hard So how what's the road forward? Yeah, I mean You know in the US elections this year. I mean I think you know voting Bernie voting You know if Warren would come out and be a little more a little less You know wishy-washy with Medicare for all I mean something really silly right now I have no idea who's winning the political or who was really in the Democratic. Oh right now I know Bernie's rerunning and Biden is rerunning. Yeah, and so I'd say don't vote Biden If that's true, I'm gonna look at the camera and say if you want Medicare for all do not vote Biden Okay, okay, and then Warren is a lady. Yeah Yeah, okay, okay, and a progressive She's often lumped in with Sanders on the left. Yeah But I think you know, I like Elizabeth Warren. She's my second choice But I think if you want to be sure of fixing this Medicare for all problem Yeah, I mean not not the Medicare for all its problem, but getting it into Policy I think electing someone like Sanders is the main, you know, the most immediate option the most yeah The best option is momentum exactly, but I think we have more momentum to you know It was a Republican who's like everything in my party plus Medicare for all okay, I don't I don't know if I was vote for them. You okay, so there are You're not I'm not a one one policy voter I mean I mean if it was like I can guarantee you will be Medicare for all plus eight more years of a Trump ish like Yeah, I mean I would have to look at their other policy positions, you know I wouldn't I mean I would have to look at them as a whole And compare them against the other Dems running that's good That tells me more about you in general because it sounds like you're not really a pro Bernie You're pro you yeah, and you have a criteria Yeah, that you know lines up well with whatever Bernie saying, but if he stops saying that you yeah, yeah No, I would Bernie. Yeah. Well, I'm oh you're what else do you have because I need to look for your entire Exactly, yeah, and that's what's been really disappointing to me this this election It's been like, you know Tulsi Gabbard recently came out against Medicare for all, you know going no idea. Yeah, so lady Yeah, yeah, lady. She was she was in the progressive. I mean she still is she a politician politician? Yeah, I'm Hawaii Oh, she served in the military. I like Her her phone foreign policy is better than a lot of people She's less interventionist when compared to you know Hillary Clinton, you know someone like that and But she recently, you know went off of Medicare for all sure and that bothers me and I Think what when I see someone who has been for Medicare for all switch over to Something like a public option. Yes that yeah that to me. Yes Bothers me. Yeah as a as a voter. No, yeah, because it signals that You're not voting on you.  Exactly. Yeah, and that's I mean by the way Tulsi is not a Russian No, no, no, no, I'm not saying like Hillary recently said but so the main thing that we do here Yeah is ask what the person believes see if they're reasonable about what they believe you have a claim that you're supporting with evidence You seem reasonable about it. You change your mind if yeah, the criteria was the reality situation change I like it. Oh, I learned from talking to you I appreciate it. Do you have like a weird five-minute talk? Yeah, could you five more minutes on something like sure? Sure, do you have like a I don't have do you have like a weird conspiracy thing? Speaking to a conspiracy guy a while back ago, I was wearing like I don't know I mean those are the fun. I was really big into them in high school.  No, no Yeah, I would say I'm an atheist I mean it kind of hurts me to say it because I grew up in a smaller subculture. Oh Seventh-day avanism. Yeah, avant-ism, which is like a subset of Christianity work on Sundays. Yeah Yeah, we don't go to church on Saturdays and We're gonna lie down. Yeah. Yeah, it's a very it's like a Jewish Baptist mix of Religion and I have a lot of respect my whole family is sure sure hurts me to say like you know No, not that but only it's a matter of identity. So what do you mean by when you say atheist? How would you define that? I would say that I just don't see enough evidence for God existing You're very does exist. I would love that you believe in them I would if God I didn't say worship. I said believe If there was enough evidence to believe in a God, would you believe? Yeah, I mean if there was enough evidence. Yeah, I mean, yeah, I mean, I don't know with the evidence right now I think we probably have a not the best God in the world. I mean, I don't like If there is a God, I'm gonna have some questions. I prefer to think of God No, there is one as someone who's an incompetent but kind of like a nice guy I can believe in an incompetent God I can believe in a God that I have questions for but I would believe in a guy worship. No, yeah I don't think I'd worship anything on principle. Yeah, but I would say like yeah If you can convince me if you can show me enough evidence. Yeah, I'm there. I'm there. Yeah, I'm sure I thought of a conspiracy theory Yeah, so I was really into And like a religion class in high school. I I researched like the church of Satan Okay, and like Antoine LeBae like guys like that. Yeah, and you know the whole music Yeah, yeah, I would like them a lot more now when I was sure 17. I was really interested But I was like this is you know devil worship. This is bad But you know just that that fairly standard one, you know with the music playing it backwards you can hear like 666 or in like Hotel, California By the Eagles ever in the aliens or anything like that Aliens, I mean, I think that would be cool But I met him black was part of my childhood. Okay all that stuff Yeah, I was like this is a thing like this is totally a thing I remember when I got the memory eraser as a Burger King's kids toy. I was like I have Yeah, this is real who who says you can't just make one of these things. Yeah, it's just like we can figure this out So like when I so like I'm thinking like we ever found aliens area 51. Yeah, we're I want to I think they would be cool We're banging shopping carts together. Thanks. You know like something happens. Oh by the way internet computer We can land on the moon. It's like where'd you get all this information from we figured it out We just figured it out. I'm like, how'd you figure that now? I'm like it makes sense that you could do it Yeah, yeah, but man I mean that's so much. I read all the anamorph books. I don't know if you remember Okay, I Here is a dangerous place to love that stuff because it is to get off rails really fast. Yeah. Yeah, but cool Can be really good. Yeah, it can be really dangerous. I mean, I think If you're rational and you think it's just kind of fun It can be fine. Yeah, but I think when people really start to like the QAnon stuff really yeah is Disturbing to me with that, you know just from what I've seen of that where you this idea of like a main deep state in some way I can understand but You know, I think a lot of times people like to pin it on this like shadowy group of individuals Systems and exactly in history. The history has created these conditions. That's why when I hear things like the 9-11 Yeah, it's like government did it. It's like, why would you think that? Yeah, because for me It's easier to think government did it. Yeah, then this complicated network of our foreign policy destabilize the Middle East they've done and then yeah Leads to terrorists exactly. Yeah, you know, you know playing a big role in deposing of like the Shah in the yeah, you know in Iran Our Central American stuff. I mean that's way too much to go into now I think we like making patterns and just like immediately attacking it I hope that when we go into like topics like, you know These conspiracies or like healthcare we Try not to make as many stereotypes. Yeah, it's possible. Yeah. Yeah Just always remember let's just try to keep this an open mind of possible Yeah, all benefit from this which would be the bottom line. I'm trying to get better at functionally work towards there Yeah, even if it'll be uncomfortable for some. Yeah, we will generally all benefit Even the people who might get stepped out of it from this, you know, definitely Medicare for all even rich people Yeah, yeah, no, I think I definitely think you will get more money. We'll have more money to spend on you Yeah, it's gonna work out. Yeah, it's triple up economics and I'd say and ask for the people who like especially with like they do it with college But also Medicare for all well, I don't want the government to be paying for this rich, you know a hole at the beginning. Yeah You know thing I think that's just such a childish petty view.  Yeah, let's not not do Medicare for all because one Rich kid. Yeah, gonna benefit from it. That's his child I'm not a fan of that outlier. Yeah, okay, Chris. Cool. I know a lot of stuff. I appreciate it. This is awesome. Yeah, man Thanks. Thanks. Feel free to take a card. Okay. We're running out of t-shirt from earlier Look at you. Yeah, okay. So yeah the video that we're doing right now. They'll probably be posted on this guy Okay, but I have a friend named cordial curiosity. He has that blue business card right there Okay, I would recommend you take that because I like his channel. Yeah, I appreciate it. Yeah, it's awesome Was it tie or tie tie tie, cool. I'll say ties. I don't know. I heard like tie us when you said it I wasn't sure and I'm really bad with names


It's time for us to play Silent Hill 2. This is a game that a lot of people have been asking me to play for some time now I never played Silent Hill at all. I've even played Silent Hill 1. Here we go Frick, action level, riddle level. Wait, what do I do? Do I do hard or normal? Normal slash easy The puzzles are crazy. Wait, really? Okay, a lot of people are saying normal normal Mary Could you really be in this town? The camera is a little screwy. Oh, it's this there's something in the well. What's that? Looking at this makes me feel like someone's groping around inside my skull. It gives me a weird feeling Save folder 32 kilobytes needed for a new save game Guys in a little bit I might have to AFK to go grab an external hard drive so I can make sure that I have the Save file set up. Yeah, just to make sure that I can keep playing the game It's a girl there Excuse me Okay, I didn't mean to scare you I'm kind of lost Lost Yeah, I'm looking for Silent Hill. Is it dangerous? Maybe and It's not just the fog either. Okay. I got it. I'll be careful Oh my goodness, there's something moving So moving okay, the start button is my order to it stood up big J Why don't with his entire back exposed? Why are you shooting him in his frickin metal head? No, you're not Do I look like your girlfriend? No, my late wife. I can't believe it. I thought she was dead. You could be your twin Your face your voice just your hair and clothes are different name It's Maria. I Don't look like a ghost do I see Feel how warm I am. You're really not Mary. I told you I'm Maria Sorry, I Was confused. Where are you going? I'm looking for Mary. Have you seen her? Didn't you say she died? Oh, yeah three years ago, but I got a letter from her She says she was waiting in our Special place. That's here. I haven't seen her. Is this your only special place Well, there's the hotel too, I guess the one on the lake. I wonder if it's still there Yeah, it's still there So the hotel was your special place, huh? I'll bet it was Don't get so mad. I was just joking Anyway, it's not that way. It's this way. You're coming with me. You were gonna just leave me No, but with all these monsters around. No, I just I'm all alone here. Everyone else is gone.   I just had a realization you can't open it Yeah, Maria, give me a hand here. Come on.  We're just crying get over here This Not very cute is it You're James you take it. Oh, thanks. Wait, are there really multiple endings? Well, what the frick?  What are you hurt bad? Not at all silly, Maria It stabbed you. There was blood everywhere Stabbed me What do you mean? It chased us to the elevator and Then what are you talking about just before don't you remember James, honey? Did something happen to you? After we got separated in that long hallway wait, what looks like a sense childhood bedroom Are you confusing me with someone else who were always so forgetful remember that time in the hotel? She never came to the hotel with me Maria. You said you took everything But you forgot that videotape we made I wonder if it's still there How do you know about that? Aren't you Maria? I'm not your Mary so you're Maria. I am if you want me to be All I want from you is an answer It doesn't matter who I am I'm here for you James See I'm real. Don't you want to touch me? I Don't know Come and get me. I can't do anything through these bars Okay Stay right there. I'll be there soon Okay, stay right there.  Freak is that what is that? What's it doing is it trying to kiss me? Are you okay? Angela Relax, how did she make me around? I'm not trying to order you So what do you want them? You're trying to be nice to me, right? I Know what you're up to. It's always the same You're only after one thing. No, that's not true at all Say it Well, you could just force me beat me up He always did Tell me anyway You're disgusting pig. What the frick is going on?   This is Maria's room Maria Maria Wait, what Maria? No What? What happened to you dead again? Why is the fog indoors? Oh, that's why Eddie What are you doing? Eddie What are you doing? What does it look like?      Hey, I didn't mean anything Don't bother. I understand.   I told you to go I swear I played this game before When will you ever stop making that mistake?  What?  I understand now.  What is this? I'm shooting out the window This is auto aim. Why didn't auto aim me out the window? Forgive me.  I just couldn't watch you suffer. That's not true You also said you didn't want to die. The truth is I hated you. I wanted you out of the way. I Wanted my life back If that were true Then why do you look so sad? Please do something for me. They're both crazy. That's what I think


So, let's start again at a little bit of a distance. Yeah, somebody wants to wake up. So, what is this talk about? It's about implementing, well implementing not in the sense of implementing software, but using software to create a system to run GSM network. GPRS will be covered in a follow-up talk by Daniel later on as free and open-source software using the Osmo-com components. Some people also call it applied protocol archaeology, which I don't mind, and we're doing all of this in Linux and user space. So, as opposed to the TCP IP stack you use on the internet, which runs inside the kernel, all the protocol stack that we are talking about today all runs in user space. There's nothing related to the operating system of the kernel. You can, of course, also run this not on Linux. I mean, you can run Osmo-com on FreeBSD or other Unix-like operating systems. Some people also have been running it on Windows. I'm not sure what's the status of that. Haven't heard about it for quite some time. Yeah, and also basically the kind of mindset or the point of view is, well, if you want to run your own private internet-style network, let's say some IP network and some people call it intranet, I'm not sure if that is still a buzzword that people recognize today.  Ethernet cards are mostly built-in these days. You use any random Linux distribution of FreeBSD. You configure the network stack. You have all kinds of fancy features. You run your web server. You run a web browser and so on. And then you have basically your own setup with internet technologies. And that's really very easy to do. You can do whatever modifications you want. You can do whatever optimization you want. You can hack the code. You can read the code. You can do, basically, you have no restrictions. And if you wanted to do that with cellular telephony before Osmo-com, you had basically to go to one of the large equipment suppliers and spend quite some time to convince them that you are a customer that actually is eligible of buying something from them.  And that's really something that I was quite surprised when I first looked into this. I grew up with free software and the internet. So I know a different world. And now the question is why didn't we have cellular free software? Despite the fact that all the specifications are public. So what many people don't know in this room, maybe they do, but a lot of people who are not familiar with it is they always think, oh, but all the specifications are closed and you can't even get the standards and so on. It's not the case. They're all public and you can all read them. Just a couple of hundred, no, a couple of thousand documents each up to a couple of hundred pages. But if you enjoy some interesting literature in the bathtub like I do, then I can very strongly recommend reading three GPP specifications. It's quite entertaining at times. Yeah, so basically why do we have this? I think the classic circuit switch telephony versus BVS community that lived on in this world. We have the BVS community that has a lot of similarity with the internet community. And we have the classic telecom community with circuit switch and all this history of ISO, OSI versus TCP IP and so on. Okay, just skipping through those slides. So basically we did some work on I already mentioned in the previous introduction. So let's look at classic GSM architecture. We have this nice drawing from Kevin in the audience that everyone uses now these days. The old one was really ugly on Wikipedia. So thanks for him. He's capable of doing nice artwork. He also did the OsmoCom logo, by the way. Yeah, so this is the classic GSM architecture as it exists. It has lots and lots and lots of elements. You have a distributed network. And what's important to understand if you have no exposure to this before is that there's not one protocol stack, but a separate protocol stack on each of the interfaces between two elements. So the protocol stack on the radio interface on UM is a completely different protocol stack.  So it's actually every interface you start to look at. Maybe some upper layers are identical, but the lower layers are definitely each time separate and different. And there's no end-to-end connectivity. It's not like an IP network where you have relatively simple routers that pass packets from left to right. It's a really completely different architecture. The intelligence is in the network itself in all these elements and not on the edge. So what do we have? We have the mobile station MS. It's not Microsoft. We have the BTS, the base transceiver station, which consists of TRXs, transceivers, and transceivers consist of time slots, TSSs. We also have a BSC, a base station controller, and many other nice acronyms. The mobile switching center, the MSC, the HRR, the home location register, the SMSC. So these are all the key elements that we can see here. And basically when we started with OpenBSC, we had a phone, we had the base station from eBay, and basically we had to implement whatever minimum is necessary on the entire right-hand side to get this to work. We did not implement all those interfaces with all their different protocol stacks. Well, why not? Because it's a lot of work and our goal was to have something working in a feasible amount of time. And today now we are moving to introducing more and more of those interfaces. And we will talk about this in the roadmap and in the 3G talk later on. So we created basically a world that looks like this. You might have seen this in the Wiki before. It's a bit small for the audience. I'm sorry for that. We look at simplified diagrams right now. All the blue stuff is third-party proprietary things that you can integrate with the stack and all the white parts are the Osmo-com components or other open-source components such as Linux call router here in this example. So this is basically where we are today and the individual elements. So since I don't like to draw drawings, I use dotty to generate graphs. That's much quicker and much easier. That's bearable. I'm not good with slides, my apologies. So we have mobile stations that connect to BTSs. We have BTSs that connect to BSC. We have the BSC connecting to the MSC and then we have other elements later on like the home location register. That's the classic architecture. Now in Osmo-com, if you run the network in the box, we simplify this significantly. So basically, we take all those right-hand side components from the BSC and upwards and we call it the Osmo-NITB, the network in the box, which then gives us this simple diagram, the most simple one. You have one phone talking to one BTS, talking to one network in the box. And that's basically what we need to set up in order to run our own GSM network, the minimal network possible. Of course, you can have multiple BTSs and so on and scale out, but that's the most simple setup that you can imagine. So the question is, what kind of BTS do I use? Because the phone, well, most people have a phone that supports GSM. If they're not from Japan maybe, then GSM is basically still in all of the phones. So that people have. The network in the box software is open source software, but what do we do about the BTS in the middle? There's going to be a separate talk about different supported BTS hardware from the Osmo-COM point of view that Alexander and I are going to present about later on. So I'll postpone until that. You can either use a proprietary existing BTS like Ericsson or Siemens, like we did initially, or by now we also have Osmo-BTS and Osmo-TRX, so we can also run that part as open source software. But there's many different flavors and versions for the sake of simplicity and because it's the device I'm most familiar with, I use a Sysmo-BTS here, but you can do this with any other BTS as well. So now an Sysmo-BTS internally uses Osmo-BTS, which is again one of the Osmo-COM open source projects. It talks a protocol called ABIS over IP towards the network in the box and Osmo-BTS comes in different flavors for different hardware. In our case, on the Sysmo-BTS, we use the Osmo-BTS Sysmo flavor of the software. The BTS itself has normally two interfaces. It has the radio interface, the UM interface, that's your antenna interface, towards the phones, and it has the ABIS interface towards the wired backhaul. Of course, it could be wireless as well, but according to specification, it is wired and everything else you do is basically your own interpretation towards the base station controller. And now with today, I mean, in the times of actual hardware implementations of these devices, that was easy to understand, but with today's flexible and very software-defined architecture, this is of course no longer actually true, because the hardware might just be some network-connected SDR that has an Ethernet interface, so the actual device that exposes the radio interface does not have an ABIS interface, but it has an Ethernet over which samples are communicated, so it's like a radio head. Or you might have a situation where even the BTS, the BSC, or even the network in the box run on the same board, so you don't have this ABIS interface exposed, but the ABIS interface is just internally. I have a couple of diagrams to illustrate that to make it clear the square boxes are hardware, the, well, not round, but whatever bubble-shaped boxes are software components. So we have a couple of phones connected over a radio interface to a physical-layer software which communicates over certain message queues with Osmo BTS. The lower part in dashes is for GPRS. I'm not covering this in this talk, I just thought I'd put it in the slide as well. And basically you can run in the square box of the Osmo BTS, you can run the physical-layer and Osmo BTS, so you get the ABIS over IP interface here, and then you have another physical box, your Linux PC and my laptop here in this case, which runs the network in the box software. And you can also run that and then you don't have an ABIS interface if you put all of the components right, the software and run it right inside the BTS because it has a Linux operating system in there and you can just run all of the software inside. So then really your network comes down to the phones and one device and you don't have all the other interfaces exposed. Nevertheless, they exist in the software, you just speak them over the loopback interface. So why am I telling you all this? Because in such a configuration, if you want to do a protocol trace, you then for example need to do a protocol trace on the loopback device inside the BTS, which some people may find a bit, well, unobvious, let's say. So these are the configurations that you can run. What we will run now here in this talk is the upper configuration. So basically we have Osmo BTS software inside the BTS, it looks like a classic BTS, has an ABIS interface and then we run the network in the box on the laptop. If you look at this for, let's say, a USRP SDR-based system, just in comparison, if it's not a Sysmo BTS, right, then you have the mobile stations connecting over the radio interface to the USRP. In this case, it's a USB attached SDR, so you have a USB interface that goes into a Linux PC where you run the Osmo TRX software, which is the physical layer, which then connects to Osmo BTS. Here, actually over UDP, I marked it here, but not up there, sorry for that. So there's UDP packets over loopback device going into Osmo BTS, and then again you have the ABIS interface going into another PC, which runs your network in the box system, for example. Or of course also you can run all of the stuff in one device, but then you still have the USRP over USP attached to one PC, which runs all the software components inside. And again, you have those internal protocols over the loopback interface that might be interesting to look at, and also that you need to configure, because of course if all those components here talk over IP with each other, then you need to make sure that they connect to the right IP address, or that they bind to the right IP address, and so on. So that's why I illustrate this outline, basically. And on the IP layer, what we see is what's called ABIS over IP. In this example, it runs inside TCP. So you see TCP connections on part 3002 and 3003 at this point, between those two elements, in the all-in-one solution where you run everything on one device. The voice data. So in TCP, you only have the signaling traffic. The voice data is carried in RTP inside UDP. RTP is a real-time transfer protocol, which is also used in VoIP and many other applications where you transport voice streams over IP. And this is just the same on the ABIS over IP implementation that we use here. Of course, none of what I say on this slide applies if you use a classic E1-based BTS from Siemens or Ericsson or something like that. But this is the Osmo-BTS case where we have IP-based interfaces. So what do we need to configure now? Actually, to get our network. We know with the setup that we have here all we need to do is basically have this. We already have this device that runs the Osmo-BTS software. We have the NITB. So what do we need to configure to get this going? We need to make sure that the BTS somehow connects to the Linux PC, to the network in the box there, and we need to make sure that the network in the box software runs on the PC. And then after that is the case, we need to make sure that phones or SIM cards inside phones are actually authorized to join the vertical network that they can register on the network. So these are the basic steps we need to perform. And so how do we configure this software? All the native Osmo-Com software. Talk about what is native and what not, but all the software that was originally created inside this Osmo-Com cellular infrastructure universe share a common architecture that is defined by a set of libraries that we use from all the programs. And these are called Live Osmo Core, Live Osmo GSM, Live Osmo VTY, Live Osmo Avis, Live Osmo NetIF, and there's more and more of them. And part of what they provide is the configuration handling. And this is done by an interactive configuration using a command line interface similar to what people might have seen in Cisco or other routers before, where you basically are, you telnet on a console and then you have tap completion on a command line interface to enter commands, both for introspection of the state as well as for actually changing or creating configuration in there. In the end, what you enter there in the command line interface can be stored to the configuration file. So this is a bit unknown to people who have not worked with this type of interface before. Normally, or in many cases, you would expect you write a config file by hand and then you start the process and the process only reads it, but here it is bidirectional. So actually, you start the program, it reads the config file and uses the data in the config file to operate, but then you can telnet into the system at runtime and modify those parameters and then save them again back to the config file after you've done your configuration changes. You can of course also manually edit it, but that's not exactly recommended unless you know what you're doing exactly because you don't really have syntax validation at the point. If you do the editing through the telnet interface, then the system only accepts valid parsable configuration commands and if you make a mistake or a typo or something, it will immediately reject it at that point. If you just edit the config file, you will notice at the next restart it cannot be very obvious which of the 15 changes you made has now caused the syntax error at this point. So if possible, the recommended procedure is to use the manual edit, but of course let's say if you run a larger network and you have some configuration management with templates that generates those config files using text templates and some variable substitution and so on, you can do that just as well. You just have to know how exactly the syntax looks like. So this configuration format or method is used both for the Osmo BTS software and the Osmo NITB software in this case. In this case, as I said, the Osmo BTS runs in this small black box here, which is the Osmo BTS 1002. We can access that via serial line or via SSH over the Ethernet, which is the yellow cable here on the desk. And then we can edit the configuration file by hand or use the BTY as described on the next slide. And the configuration file that we need to do, the most minimal configuration file we need to put on the BTS, really looks like this. So we see this indentation here. Basically it's a hierarchical tree-like structure. You don't see it from the simple example, it goes deeper into a tree by indent levels, a little bit like Python syntax. So you have to configure the BTS zero. We start to count by zero because we are computer scientists or IT guys. So the first BTS is zero, not one. The band is DCS-1800 is just the name for the 1800 megahertz band in GSM. Why do we need to specify the band here? Isn't that obvious from the hardware and so on? Well, the creators of the ABIS protocol were not how can I say not helpful enough in this respect. And also the problem is that the channel numbers of GSM are not not unique. So if you say ARFCN 512, it has a different meaning whether you're in 850 megahertz band or 900 megahertz band. So the channel number itself is not sufficient information to say or to determine the frequency. So you can set the band here. You set the IP access unit ID just the next slide, what that is and why we need to put it there and we specify something called the OML remote IP. And that's now in this example the IP address of my laptop which will be running the NITP the network in the box software. So the BTS will then establish these TCP connections to this IP address and follow up with further configuration. That's actually the note that is slightly cut off here at the bottom of the slide. All the other configuration is as per GSM architecture is downloaded from the base station controller into the BTS. The idea is that you do not have a lot if possible actually no configuration on the BTS. The BTS are distributed over the country and all the configuration is installed only at run time when the connection between BTS and BSE is established. So you can centrally manage the configuration and don't have distributed configuration all around. Also when you swap equipment you don't really need to change more than to set these two parameters and then all the configuration again gets downloaded from the BSE into the BTS based on these addresses that are specified. So what's the unit ID? Well the unit ID first of all it consists out of three parts side number, a BTS number and a transceiver number. So in the config file why do we specify only two? Well because the transceiver number is more or less logical. If I have one transceiver the first one is TRX0. If I have two transceivers then I have TRX0 and TRX1. So I don't need to say the transceiver number I only need to say the side number which is 1801 in this case and the BTS number which is 0 in this case. I can use any arbitrary numbers there as long as I think 16 bit or something like that so arbitrary within that range it doesn't matter it's just a key by which the BSE looks up the configuration when the BTS connects. For example in this scenario three BTSs with different unit IDs they have different source IP addresses but then maybe you have network address translation in between and then you connect to the BSE. So using the source IP address to identify which BTS is connecting right now is not a good idea because it might be translated in between. So that's why there is a unit ID and that unit ID is the lookup key when the BTS is connected to the BSE or the network in the box and then a corresponding configuration section is searched using this lookup key and then this configuration is downloaded over what's called the organization and maintenance link protocol into the BTS. Okay, so just to recapitulate this is all we need to do on the BTS and then on the network in the box well we first need the software itself. It's in theory just the usual like you build any source code from free software projects that use auto tools so you check out your Git tree you do your auto reconfigure, configure, make install but then in reality there are lots of library dependencies we try to have almost no external dependencies but of course we have lots of our own libraries and most people who want to use the software they are not developers so what we have available for I think a year now are nightly packages available for Debian 8 and 2 Ubuntu flavors so if you are not a developer and you do not want to go all that deep into the like building the code yourself you can use those Debian or Ubuntu packages, install them and then basically just use the software like any other software from a package feed in terms of requirements there is not really any needs to be well for the packages it needs to be Linux otherwise you can also use if you build from source you can also do it on other operating systems and the resource requirements are extremely limited for minimal network so that's actually why we can run all of this if we want to also and this is more BTS I mean this device has a 405 megahertz ARM core with almost no cache and 128 megabytes of RAM so this is what you can run the entire system not only for GSM but also for GPR as an edge on and so the resource requirements are relatively limited I wouldn't claim that the code is written in an efficient way it's just written or the architecture is very much like what I have seen or I have been used to when I was doing this kernel work and if you do that kind of low level development the code typically ends up to be quite small and resource friendly so what do we need to configure well there's a little bit more we need to configure at the network in the box we need not only to configure the parameters of the GSM network itself but also the parameters of the BTS because they get downloaded so we start with the core network configuration we have to configure the network country code and the mobile network code well yeah this typo yeah this is why you shouldn't edit it from hand so this is not a short name but a short name of course well but then it doesn't align anymore the authentication policy the yeah sorry for that we'll just log in we'll just look at the config files together the actual ones I just want to go through the theory so the network name is a name a human readable name that gets transmitted to the phone to identify the network beware that this name is only transmitted after the phone has registered to the network so if you do a network scan you will not see a name that is sent here but you will see a name that the phone generates based on tables that are compiled into the firmware of the phone and or tables that are stored on the SIM card of the phone so the string name is only used after successful registration you have to use mobile country code network code maybe just very quickly the mobile country codes they are assigned by the ITU there is a table that tells you that 262 is Germany for example and the mobile network codes are allocated by the respective national regulatory authority one so if you had 262 is Germany and 02 inside Germany would be Vodafone so 26202 is basically the Vodafone network here in Germany as an example there's also a code for testing one and one is allocated for testing so if you run some lab type setup it's one idea to run on MCC and MNC1 there might be regulatory requirements that tell you what to use so we don't use encryption in this network so we say encryption A50 A0 means off in this case and auth policy closed means we only accept phones that are registered so basically we are using a whitelist model all phones normally cannot register to our network only those phones which we explicitly permitted in whitelist which is basically our HLR can join the network this is the only safe configuration if you don't want to interfere with other networks if there are any other networks where you are so then we need to configure parameters of the BTS BTS0 again well if we only have one BTS in this network and zero is the first one the type of the BTS which for historical reasons if you use Osmo BTS it's always sysmo BTS which is a misnomer we're cleaning this up slowly but anyway in this case it's actually correct because I use the sysmo BTS again the band in which the the BTS is to operate the maximum power permitted by phones to use in the uplink so basically this is the I'm configuring the power of the phone not of the BTS with this line and the maximum permitted power of the phone using this if you constrain this you can constrain the transmit power of the phone if you set this to lower values which might be interesting again in lab type setups where you want to limit reduce interference with other networks another interesting setting is the periodic location update a setting which basically defines how often the phones are instructed to re-register to the network 6 minute is the unit here so 6 minutes is the lowest possible interval so again if you just want to get going and want to basically well first some first testing with the network in the box this is a very interesting setting because the phones will keep registering every often so you actually see some activity because if you set this to infinite or to like I don't know how many hours maybe you don't see so much traffic on your BTS the IPX's unit ID well that's again the unit ID you see 18010 the same that we configured on the BTS side in the in this example unit ID 18010 and then you can set things like the codec support what kind of voice codecs you support in this configuration and there's many many many other commands but these are sort of the interesting ones what we need to configure also and now you see the tree structure I folded in basically the other parts here so then inside BTS we have a transceiver called TRX0 this is a single transceiver BTS so there is only TRX0 then we configure the absolute radio frequency channel number the ARFCN that's a GSM standard language for the frequency on which you transmit you don't enter frequencies but use channel numbers and then some other configuration what's important is this setting the max power red the maximum power reduction which is what many people struggle with slightly it's not something that we came up with it's part of the GSM specifications so the idea is a given hardware has something called a nominal transmit power this is the maximum output power that a given BTS supports so in this case it's an indoor sysmo BTS 1002 it has 23 dbm maximum transmit power that's the nominal transmit power and here you configure the amount of reduction from that maximum transmit power you want to have so basically if you configure 0 it will be 23 minus 0 equals 23 dbm if you configure 20 here then it will be 23 minus 20 equals 3 dbm so that's inverse basically so you don't configure how much you want to transmit but how much you want to reduce attenuate the transmission compared to the maximum capability of the device in this case it's full basically 0 means full transmit power and then GSM has time slots I didn't go into details about this but this is really fundamental GSM knowledge you have 8 time slots on every transceiver so they're from 0 to 7 I left out some in the middle and you have to configure what kind of channels you want to use on the time slots in this example the most time slot will have a combination of common control channel and slow dedicated control channels there are several different combinations that you can configure there it depends on your use case what you need and how to set them this is basically network planning part but for simple testing you can just use an example config file that we have in the examples folder in the source code of each of the osmo-com projects where you can just copy the example file and then do modifications of those things that you want to modify but the others you can just leave if you don't understand the details at that point here in this example we configure one as PDCH that is for GPRS which Daniel will cover soon so we're setting all this up and before I go on with registering a phone let's actually have a look at how this looks like in the files if I configure this here I hope the font size is large enough to be readable even in the back if I I get some nods from back there okay so what I'm going to do I'm going to SSH into the let's try it like this yeah I have a headset here but I don't like headset so much so come on actually we have some microphone stands okay so I have another shell window prepared here so I'm going to SSH to 192.168. no .100.80 which is my bts yeah I want to be root there there's no other user yes that's fine so I'm on the root shell of the bts now and sorry just have to do this yeah okay so here you see it's a small arm core whatever that's the actual device oops it's a small bts so what what we need to do is type correct and we want to look at this etc osmo com osmo bts let's open it in vi osmo bts.config file so we can already see at the beginning it says this was saved from the vty so this was stored from actually interacting with it then we have a large block that I didn't talk about in my slides about logging this is just you configured the log levels what kind of log information you want this is just some it relates to the way how we configure it and this is really the configuration you can see it's actually I'm not lying this is the end of the file at the bottom I can scroll this up for you guys but this is really ah yeah actually there is yeah well we would have found that out I thought I had fixed this this morning but okay okay so this is the basically all there is in the configuration right the band the unit id and the remote ip address so I'm deleting all the lines that I added at the bottom now so this is the config file that we have on the bts side that's really all so now I'm switching I'm switching over to the the laptop side so what I'm what I have I'm here in the inside the source code of OpenBSC but if you install the program in your system of course you don't need to do this from a specific directory and here's the OpenBSC config file the file is always called openbsc.config um whether it's the nitp or the bsc so that's a bit his for historic reasons maybe we should change that at some point um the configuration file and you can see it's actually I'm scrolling through this it's 187 lines long so it's actually quite a long file but as I said you can just use the example config and edit those bits that are important so once again we have logging configuration as you can see there's many more things that we can log which we just skip this is all just for for debugging and so on and here we get to the settings that we have seen on the on the slides the network country code for example is 901 in this case the network the the the network code is 70 we have the short name with an R um we have auth policy closed um that's also what we had on the slide we have encryption a50 so you see all those settings that we have discussed before um lots of other settings as that we just leave all the defaults what's again important is here the type sysmo bts the band in which the bts operates um the ms max power which is a bit uh theoretical um those of you yeah some people are laughing I've certainly say well the maximum permitted power is 40 dbm I don't think there's any phone on this planet that's I mean for gsm that can transmit at 40 dbm that's a lot of power yeah um but I mean this is the maximum permitted value I'm not saying the no it's just well you you may transmit up to that power um if you cannot well you just transmit at less so normal phones uh on dcs 1800 can do 30 dbm so 40 is definitely much more so basically I'm saying well do all you can um yes captain I'm doing 140 percent um okay so where were we we were at ms max power here um here is the ipx's unit id in my case it's one two three four zero not one eight oh one but it matches what we have seen on the bts side that's the important part as said you can choose any random number and then we have lots and lots and lots of other values which we ignore for now um and then we come to the transceiver here so we have the trx and the trx runs on a rfc and one with a nominal power of 23 and a maximum power reduction of 20 the line here the nominal power 23 does not do anything this is just for you if you look at the the vt-y interface to get an idea of how much you're transmitting this does not change any actual parameter in the hardware this is again I mean we just did it how it's in the spec um it's stupid but this is how it's in the in the spec for for Avis OML um we are going to improve this but this is so basically you can leave that line out or you can put any random number it only affects what you printed on the screen so basically you you check the datasheet of your bts you see oh it's 23 dbm so I put the 23 in here and the maximum power reduction of 20 means now the 23 get reduced by 20 but even if you have zero up there it will still be 23 reduced by 20 so this value doesn't matter this one matters then we have the time slot configurations where we this is a control channel and then we have full rate traffic channels for making voice calls basically in all the other time slots I think on the last one is for packet okay lots of other configuration which we'll skip for now um but basically this is the configuration and now I'm running the Osmo NITB which uses by default the config file in the local directory if you have your config file somewhere else you need to specify a command line option where your config file is so I'm starting this and it basically tells you well I'm listening to the telnet interface on Lupec IP address and port 4242 um and uh some other here the tcp ports 2002-3003 some other protocols listening at other interfaces and it's waiting for basically for a connection um surprise that this doesn't happen let me just quickly check um why there is let me open another terminal yeah the slide is the slide is different that's correct um so I'm the 239 here that's clear so let's switch to the bts again ping yeah I can ping that ip um no it it will restart itself on the bts in this case okay failure I tried this this morning after getting up or not and that's why when I fix that that let me just that's that's fine that's fine too we are a bit tolerant in what we parse so it can be with dcso without let me just see connection closed by foreign host okay ah this is probably my packet filter um yeah I think I have it on the slide uh you know make sure that you don't have a packet filter that um so and there you go uh okay this was the connection that I made the telnet connection the bad message but I think now it should oh no it actually went through it went through that's why we see it here so it was not the packet filter ah demos yeah I hate demos um let's okay ah okay yeah for some reason the bts process didn't start if I started from hand on the bts now we have the connection we get this purple line here bootstrapping rsl that basically means the bts was connected and it's bts0trx0 um and we see him again repeated the mobile country code mobile network code and we already see some location update requests from phones in here why is that because we're in a bunker and we don't have real network reception so the phones of people in this room who cannot see a real network will try to roam onto this network and we're seeing registration requests for um imsies that we don't know um so and they get rejected because we have a closed network so basically those connections get rejected if I now register with this phone I could register into the into the nit B but if you're running out of time as it is so I'm just going to back go back to the slide and basically say what the next steps are well basically the phone after it powers up it first checks the sim card if the cell is found again before it was switched off so the phone will never do a network scan if it finds the cell that was present while it was switched off so if you power off a phone in a location and you power it up again in the same location it will directly go to the cell where it was registered last it will not do a network scan doesn't matter what other networks are there so you if you want to override that you have to do a manual network scan or something like that by yourself then you see a list of the networks and then you can try to register explicitly to that network um so then it will perform what's called a location update with type in the attach which is basically the network registration um and that needs to be accepted and in order for that to be accepted um we need to set a certain flag in our subscriber database I shouldn't click on the slide this authorized flag so basically in order to make a subscriber join the network we need to authorize him so there's a command by which you can authorize the subscriber and if you show the subscriber then on the command line interface you will basically do something like this that's authorized one and then the subscriber is able to join the network and uh yeah so that's basically how far I wanted to get as I wanted to show also the registration here but as I said we are unfortunately on a very tight schedule so um we are taking the morning break now before Daniel is coming back with how to extend that configuration to GPRS okay thanks if you have questions right now to this feel free to ask I think we can do one or two questions otherwise it's the coffee break okay well then ah there is more question yeah sure sorry I give you the phone the microphone um my question it didn't used to be this way you know my question is actually about the configuration some of the features about kind of being able to save from the VTY are new to people who kind of got used to doing it the old way from like five years ago how smart is the configuration in terms of being able to tolerate or rather not tolerating correct values but to put smart things in for values that are not specified if you use old config files I'm just curious sorry yeah the microphone um the uh basically all the values that you do not specify will have default values now how sensible they are for your particular the static defaults right so basically each parameter almost all parameters have a compile in default value that's in the code so it will not try to analyze what basically your configuration is and try to make a guess that might be particularly smart for your choice but default values so let's say if you do not specify the maximum power reduction I think it will apply no reduction or if you do not specify the mobile station maximum transmit power I think it will use 33 year old I'm not sure but there's a default value it will not be a default value that will make your network completely not work right it might not be optimal but there is a default value compiled in and if there is no default value for a certain parameter then it will be able to start with a config file that does not specify that value


Hello and welcome to the Coach's Corner. I'm Joe Wamba, joined now with Ed Hoddle, head coach of the football team. And Coach, you guys head up to Widener after your bye week and have a pretty darn good performance. Yeah, we talked with the staff and we talked with the guys yesterday. Probably one of the most significant team wins in our program history. It's not often that you're able to score in all three phases of the game. And we were able to do that. And fortunately, we got some timely big plays. And we were able to put some distance between us in them, which makes play calling and decision making a little bit easier for us. So really proud of the guys coming out and playing at the level they did and coming away with a good team win. And you talk about those timely plays. We get the first career or first punt return for a touchdown in school history. And then back to back pick sixes on the defense. The guys are hungry for the ball. Yeah, it was a neat experience for Preston and the other 10 guys on the punt return unit to get the first one in school history. We've come close a couple of different occasions. And it kind of brings me back a little bit to the first year or two or three of the program where there were so many firsts, the first touchdown, the first fumble recovery, the first interception. And still kind of having that one out there and being able to kind of put a check mark by that was pretty exciting. And then to get the back to back pick sixes, that's pretty special. I don't remember my career of ever seeing back to back interception returns for a touchdown. And that was really neat to see. And our guys get a chance to be excited in a big spot on the road. Yeah, those guys are just so excited. Any time the ball's in the air, they're all hunting it down, it seems like. Yeah, again, that's the culture that Coach Johnson's built in the secondary and one that's exciting for us. I get excited when the ball's in the air because you're waiting to see who's going to come up with it. But again, it's a lot of hard work. It's a lot of film study. It's being blessed to have some exceptional athletes back there and the culture that they've been able to build over the last several years here. It's exciting thing to watch. And on the offensive side of the ball, another strong day from Daniel Williams. Yeah, Dan was solid all day. I think you see Dan's progression. You see him growing up within the scheme and growing up as a quarterback and knowing that after this year, he's going to be here for another two. It's certainly very, very exciting. I think probably one of the coolest things that happened to the quarterback position on Saturday was Steve Shanley. There are three plays where Steve comes in and makes exceptional reads and throws three exceptional passes.  Steve comes off the bench, goes three for three for 47 yards. He converts a third and 20. We're down at that point, 14 to 7. Field position wasn't great. And for him to be able to go out there and convert was pretty exceptional. And I really believe, and I've said this probably 15 times since the end of the game, that was a really, really key possession for us. Looking at the possibility of going down a second score and having to bring the backup quarterback in, and Steve really did a solid job in a tough spot. And I think at that particular position, that's pretty remarkable to have a guy come off the bench with 15 seconds notice and go three for three for 47 yards. Absolutely. That's something to be very excited about, not just in being able to have that drive and then having that depth as well. Depth across the board, it seems like. And I'm talking a little bit more about the excitement that keeps on rolling. Homecoming on Saturday, probably one of the biggest crowds we'll see ever in the history of the program so far. Yeah, it's going to be an exciting atmosphere. I know the tailgates will be in full swing probably well before 8 o'clock. And having the opportunity to play in front of so many home fans is always special. Our folks here did just an outstanding job from a game day atmosphere perspective. They're loud. They're professional. They understand what it is that they're watching. It's a very, very smart football crowd. Our students are awesome. I can't wait to see what kind of cool things.  And I'm like, where do those come from? So I think it's really creative. And I think our fan base here has really bought into a game day experience, which from a coach and a player perspective is certainly very exciting to see. And we're hoping they come out and enforce, and we're hoping that they're as loud as they have been historically. We love to see that type of support at all of our games and events. And football is one of the biggest ones that we have on campus. It's going to be great to see. What types of things do you guys need to focus on internally that you maybe had to fix from the past week or from the beginning half of the season to get that W again on Saturday? Well, I think on a whole, we looked at our evaluation of what happened on Saturday.  So I think, again, it's that internal focus. It's looking at what we did and did not do on Saturday that could affect the outcome of the game this week and working as hard as we can to correct those mistakes. I think there are some key areas that we identified in our meeting yesterday for our guys to really work. And we've challenged them to really elevate their level of play. And I think we've done that almost every week. And I think we've got to take another step forward. And much like anything in life, the more you pay attention to the details, the more successful you're going to be. And I think as we were getting into game number seven, you have to focus even harder on the details. It's a little bit of extra film work. It's a little bit of extra focus and practice. Because as we go through the next four weeks, every week is going to be a huge challenge for us. Yep. Well, Coach, good luck in that focus. And we are looking forward to seeing you guys out on Saturday with a big crowd on hand. Thank you very much. He's Ed Hoddle. I'm Joe Wamba. And this has been the Coach's Corner.