Rwy'n gallu cwestiynau. How many of you believe being a people manager improves your career growth? Let's have a show of hands. I can't see all of you, to be honest, but let's see how we're doing. Not as many as I thought, I'm going to be honest. Maybe 20, 25% of you. I've got another question for you.  OK, there's a lot more of you believe this one. Well, I'm going to talk to you today about being a product leader and having a fulfilling career in product management. And these are part of having a fulfilling career, but what do I really mean by product leadership? Well, I think that if I ask you if we talk about it generally, we tend to think about chief product officer, VP product, all those senior job titles that you see around, that you see on LinkedIn, wherever you see them, that's a product leader. But that's not what I believe, and I don't think that's true at all. We are all leaders in product because we are incredibly lucky. We actually get to work in an industry where we are leading problem solving, where we are guiding teams and road maps, where we're leading thinking, where we're leading the industry, where we're leading change. Do you see the common theme here? We all get to be leaders no matter what role we do because leading is not about a job title, not about a job title at all. Leading is not about seniority. Leading is about the skills you bring, the attitude you bring, and the work that you do. And there is the opportunity to be a leader at every single level of your career. No matter what role you do, you can develop those skills. And when we start to think about it so much more holistically, then we open up so many more opportunities for ourselves. We open up so many more opportunities to pursue. And what is it that creates a fulfilling career? What is it that brings you joy and passion and all of those things? Well, I can tell you that it doesn't come from a narrow definition of leadership. It comes from embracing wide experience and opportunities. You all know that because you're product leaders and you all know that by embracing wide perspectives by thinking broadly about problems you get to better outcomes. We need to apply the same thinking to our own careers. Now, there is this traditional view. You've probably seen one of these. Maybe your business has one. They've existed for tens, probably even 100 years. And they're very linear. And maybe you're an associate product manager sitting there today.  I've got to make a decision. Am I going to go left and become an individual contributor for the next 10, 20, 30 years, however long? Or am I going to step the other way and become a people manager for 10 or 20 or 30 years? Whatever the decision is, there's one moment in time to make it and I've got to make it now. That's a huge weight. And actually, that's not real life, is it? This is much more like real life. This is much more indicative of my own career. Maybe you've come into product from a different discipline.  Maybe you're sitting here in the audience today and you've done a boot camp and you're on your second career in product. Well done to you if you have. It's a great step to take. I have never been a senior product manager. I have never been ahead of product. But I am here today as a chief product officer because I've done a whole load of variety of roles in the tech industry and in business over the years. And I've bounced between being an individual contributor being a people manager. I haven't followed one path. I haven't even stuck to one path. I was a people manager. I then took on an individual contributor role in a sideways move, which is one of the best things I ever did. It was a role where I learned so much and it catapulted me forward in my career. So I think this is a much more realistic picture of our careers today. And I encourage you to think about it like this. Bounce around from one to the other. Experiment and learn. We are not ever really finished learning. We're not really ever the finished article. And as we go through life, as we learn, as we develop, as things change in our lives, our priorities change and what we want from work changes. And that will change the roles that you think you want to take on. Sometimes we learn new things and it sparks something that we didn't know that we loved. And if we think about ourselves as just on one path to tread, then, you know, we get stuck and we can't pursue the things we love. And Steve Jobs talked about this. You know, you spend a lot of time at work. You might as well make it great work because we all spend so much time doing it and I fully agree. But enough about structures and charts and linear career paths. There's much more fulfilling elements to your career than what your title says on paper or the path that you followed. So, like I said, your work is going to fill a large part of your life and the only way to be truly satisfied is to do what you believe is great work. The great words of Steve Jobs and a great thing to think about when you're thinking about your North Star. So this diagram here is not intended to be a linear upward progression. It's just an illustrative example. An example of what got you here will not take you where you want to go. Your career is not a random event that you let happen to you. You're in the driving seat. You have agency. You own every decision that you make. And if you don't drive your own career, then the decision you've made is not to do that. And I don't think that that's what any of you want. So, you need to think, what is the plan for me? What is the meaningful next step that takes me from where I am to where I want to be? Now, of course, the things we've learnt along the way, the skills we've learnt, the experiences we have have a really important part to play in taking us forward. But that's not the whole picture. And we can't rely on those skills forever. We must look forward. We must make a plan. We must be purposeful with that. I've got another question for you. I think I know the answer, but I'm interested. Can anyone here read minds? I feel like I heard somebody whisper, yes. And if you did, then you've got a head start on me and pretty much everybody else. But I can't read minds, and I think that's what 99% of you also think. So, why am I asking you that question? It's a bit random, right? Well, no, it isn't. Because you own your career and the steps, but it is critical that you also talk about it with other people.  If you do not tell them, if you do not talk about what your personal goal is, your ambition, your North Star, then they're going to make assumptions for you. And those assumptions will be made with the absolute best of intentions. But they're not yours, they're mine, or they're that person's. And you might find yourself shepherded down a well trodden path in a certain direction, but it's not the direction you want to go in. So owning your career is also about standing in your strength and being clear about what you want and why, and not being afraid to talk about it, and not being afraid of being ambitious.  Don't be ashamed of wanting what it is that you want because every desire, career-wise, that you have is yours. It is your personal plan. It doesn't matter what I think. It doesn't matter what anyone else thinks because it's about your fulfilling career. So don't hide those things. Talk about it. Tell the people around you what you're striving for. They might have great advice. They might be able to connect you with other people. And that leads me on to another really important point here. We have to be purposeful and we have to plan our careers. But it can be really difficult to do that because maybe if you're early in your career there are a few obvious options that come next. But the more senior you get, the more experience you get, the less clear it becomes. And what I have found really valuable and what has served me well to get to where I am today is to stop thinking about the job title, to stop thinking about the position in the hierarchy, and to start thinking about the capabilities and the skills. That you want to develop. That you love doing. Think about the things that you don't like doing and why you don't like doing them. And what I do is get that down on paper and I then say to myself, okay, these capabilities, these skills, I want to do more of those. I want to move towards that. The ones over here, I can do them but I don't love them. They don't give me energy. They're not my passion. They're not the best of them if I can. And so every opportunity that comes my way, it's not about the title or any of that. The question I always ask myself and I encourage you to ask yourself is, does this work take me closer to the capabilities that I want to develop or that I want to be working on or does it take me further away? When you start thinking about it like this, you will find there are so many more opportunities open to you that weren't originally obvious. Maybe they will take you outside of product. Maybe they won't.  But it's really important and I think it's much easier to build a plan when you think about capabilities and what you love and what your passion is than if you think about a job title that must be achieved. And how do you go about figuring that out? It's easy to say, harder to do, as always, with advice. But the things that have served me well are reaching out and finding mentors who do the things that you want to do, who've worked in the areas that you want to work in or might have a different perspective to offer. I think pursuing learning for specific skills is really important as well. Just about learning on the job, there are certain skills that you need to go out and cultivate. For me, that came, for example, some time ago, I was working as a chief of staff and I was doing a lot of corporate finance, which is not something that I'm particularly good at. But I was enjoying it. And so I said to myself, well, I want to do more work like this. I love this job so much. I want to do more. I want to be better. So off I went and started my Chartered Institute of Management Accounting exams to learn that skill. And I encourage you to find ways, small and big, to cultivate specific skills and do learning. I think it's also great to reach out to people in other industries. Maybe there's an industry you really want to contribute to and you want to learn about it. Find somebody out there who can tell you about it. Get some advice about how to approach things in that industry. Get some connections, network. Absolutely critical. And then my last piece on this is one which is often overlooked or underrated. But I can tell you has been one of the most meaningful things for my own career development. And that is taking a sideways move. People often don't want to take a sideways move. It seems like it might hold you back. But I assure you is actually the springboard that catapults you forward. Last year I was here talking about creativity coming from broad perspectives and different views and getting real creative solutions. We need to bring that same thinking to our own careers. Taking a sideways move, learning something new, getting a different perspective, building as much breadth as you can is invaluable in helping you as you proceed in your career. I am better at nurturing people in my team. I am better at mentoring and I am better at solving problems and approaching business challenges because of the breadth of roles that I have undertaken and the number of sideways moves that I've made in order to make that happen. I really encourage you to think about that as you plan your career. So there's a few tips there and we talked about capabilities and we're here for a product conference. So I've tried to boil down some of the product capabilities we might want to look at. So broadly speaking we've got product management skills like product execution, customer insight and we've got product leadership skills which remember applies to everyone, influencing people, product strategy. These are very high level. So I've broken it down a little bit more, only a little bit more and obviously underlying all of these, you know there are a bunch more skills there but I had to stop somewhere and simplicity is also a skill in product. So these skills here are critical no matter what you do in product. Now perhaps maybe you're sitting here and you're working in UX or a UX designer then voice of the customer, user experience design they're going to be really important parts of your skillset. Maybe roadwapping is a lesser part of your job but you still have to engage in that process. You still have to know what it's about. You may not do it every day, it may not be a big part of your role but it's still important and that goes for everything on here. These are all part of being successful as a product leader and in the product discipline. We talk a lot about being an individual contributor or a people manager and there are lots of perceptions about who has influence and who doesn't. But I think you can see here there are a number of skills that we all need in influencing and even team leadership applies whether you're a people manager or an individual contributor. As an individual contributor you're going to be leading roadmaps, leading designs, leading teams in a matrix way. You're going to be setting the direction. You're going to be making decisions that set the direction for the entire business. As a people manager you'll do some of that too but your focus might be more on developing the people in your team directly and your responsibilities in line management. My point is that when you think about the skills you need to succeed they're the same. It's just the focus is different the way they're applied is different and when you start to think about it like this it becomes obvious that you can of course bounce between the tracks between roles. You can go from one to the other and you can think holistically about your career. You can open up all the opportunities. I find this a much clearer way to look at the role that I want to do. But there's another important factor here it's not just about the skills we have it's not just about developing the skills because you can be really good at a job but absolutely hate it and that's no good. Someone can tell you that you're really really good at that thing. For example I often got told that I was really good at detail so I absolutely hated having to do jobs that were all about the detail because I love thinking about big picture ideas and bouncing ideas off people and I didn't want to only be doing detail I was forcing myself to do it. It's important that we recognise those things. So you need to discover your why you need to think about not only the skills you have but what is it that gives you energy what sparks your passion what drives you forward what is it that makes you jump out of bed on Monday morning we don't want the Sunday scaries we want to be full of energy for the work that we do we want to love it because Steve Jobs said it really well we spend a lot of time doing it so that means finding your why what do I mean? I talk about this all the time with my teams with people I mentor I think about it for myself a lot as well your why is the passion that drives you forward your why is the reason that you do what you do your why is the thing that makes you feel proud of the work that you're doing of the role that you play of the impact that you have and it's critical that you examine this and you think about what it is only you know the answer and like I said with ambition it doesn't matter what it is it's unique and personal to you and as long as you know what it is and you're driving for it that's what matters we're not here to impress other people we're here to live our own lives we want it to be worth it right so really think about why think about the energy think about what you want to be doing part of figuring that out is having a gross mindset is another one of my absolute favourite topics another thing that I talk to my team about all the time and again we're super lucky because in the product world we do a whole bunch of things to learn from our users the industry to grow and improve our products so you all already have the skills you need to develop this gross mindset to cultivate it you just need to turn them on yourself you need to turn them on your career so here are three easy things that I guarantee that every single one of you already knows how to do and is probably already doing on a regular basis in other forums be agile and have a retrospective culture you all know what a retro is I'm sure you do them all the time do the same for your career do the same for your role think about the times where you felt amazing where you felt like you could conquer the world you could do anything think about when you were happiest think about all of those things and it will give you a clue you will find a thread for me it was about being part of a really great team where I felt like you know what if I make a mistake the people around me have my back and I know if I'm in that environment I can tackle anything no matter how hard it is that's what I discovered when I started to think about it you will discover those threads for yourself and it will help you to make really great decisions about the environment you want to be in rapid learning and experimentation again I'm sure you're all running experimentation on your products you're all rapid learning talking to your customers learn quickly all of this stuff that we do in product turn it on your career what can you do to experiment I actually was talking to somebody the other day and they said to me Jess you get on stage in front of thousands of people and you're not nervous how do you do it first of all we're all nervous when we get on the stage that's normal but second of all I didn't go from never doing a presentation to getting on stage in the Barbican I talked in teams I went to meet-ups I did lots of small presentations over many many years and that was my advice to this person go and practice experiment find out what works for you and then do more and learn and grow and then the second or the third time that you get on stage at the Barbican is as white as bad as it was the first time and you hope that one day you won't feel any nerves but I'm not sure if that's true I'll tell you if it is and then lastly transparency and feedback culture again I'm absolutely certain you're doing this in your teams that you're working on this every day we don't need to be afraid of feedback we just need to choose who we ask and why we ask them or crisp up those asks so that we ask them for something specific that's going to help us think about the questions you want to ask think about the people you respect and whose feedback really matters to you and go out and ask those questions because self-awareness is key we can't succeed if we don't know ourselves if we don't know ourselves we don't know what gives us drive we don't know where we want to go and we don't know how we're performing it's nothing to be afraid of it's all part of the journey often we shy away from this but actually being transparent about what you want to achieve where you want to go talking about it and seeking feedback is all part of the journey I've had so much feedback during my career some of it is so cringe and horrible I don't repeat it but it's all a learning journey it's helped me be who I am today it's helped me learn how to give feedback to people so that it doesn't devastate them in the moment it's helped me reflect on why certain feedback hurts more than others it's all part of the journey embrace it don't be afraid of it so we want to have a fulfilling career I hope I've left you with some thoughts on how to achieve that and how to move away from linear career path and focusing on job titles to actually creating a career for yourself that's meaningful career fulfillment is not about taking a single path it's about finding your passions and what you love find what brings you energy and channel that into your career growth into your personal growth it's so important today's path is not the path for tomorrow make your decisions take hold of the opportunities own your career make it a great one and go and achieve your dreams thank you


a very critical role later on. Now, let us move forward. So, this is the L function for different characters which are analogous to zeta function. And like in zeta function, it has a functional equation. That also played a very critical role. So, let us just check out what are the properties of zeta function. Firstly, it has a pole at 1 that played a crucial role. We will call the, when we looked at this poles of zeta prime over zeta, it had a pole at 1. So, that we did a certain residue. That residue was x and then there were other residues. Similarly, we will do the same exercise for L function. So, anyway that is the first thing about zeta function. Second one is this connection between the psi and the zeta function. Integral psi being written as integral of zeta prime over zeta also. Third was this functional equation for zeta function which allowed us to analytically extend it over the entire plane. And what are the properties of zeta function? Let us say that then we looked at actually this functional equation is allowed us to also write this here. zeta function is a product and that was very useful in analyzing the growth rate of zeta function over zeta prime over zeta along the lines vector to be the growth for the order log r. So, these are the basic things that one did for zeta function. We will do the same thing for the other thing. The first thing we have already seen is that we are at z equals 1. Now, let us come to the functional equation which details. All I will say is that you will just mostly follows what we did for zeta function. Now, if you remember how did we arrive at the functional equation? We started with the gamma function. You start with the gamma function. Gamma of integral of integral of integral of integral of zeta. Then we said let us replace t by e to the power of zeta and we said replace t by pi n square u and then gamma z become 0 to infinity. I am just thinking things that do not integral to zeta function. So, we looked at gamma z by 2. So, there we get pi to the power of zeta to be 0 to infinity. Then therefore, we get and now we say sum over all x. That gives a zeta function on the left hand side. So, integral on the right hand side and then we do the analysis on the right hand side. But now, we want to do the same thing for L function. So, up to this point it is the same no difference. But now instead of summing over all x what we do instead do is we will call the definition of the L function. We first multiply it with chi of n and then sum over all x. And then we look at this summation and earlier we played around with the just the summation without chi of n multiplied. But now we have chi of n multiplied. But the analysis of this summation is exactly the same as we did it before. And the fact that chi of n in multiplicative makes everything go through very small. There is one minor difference that we will encounter as we do the analysis. So, to cater for that we will have to do slightly differently for our aspects. So, let me split the characters into two types. What character? These are the only two possibilities for this character, now minus 1 you could either map it to minus 1 or plus 1 with that all is for the multiplicative. The chi of minus 1 whole square is 1. So, chi of minus 1 is 1. So, depending on whether it is minus 1 or plus 1 you can divide it into these two. Now, for one of these, now I think for Aalympic Pudip the question to you. In this do you see a problem for one of these two types? I think for event character this should be fine this is almost a minus 1 for one of these two types this does not quite work out once you start doing the analysis of this sum you will realize yourself. So, I will leave that this is equal to that same 1 minus z ok. So, let us define. So, first define this in the same fashion this one is zai zai zai zai zai zai zai zai zai zai zai zai zai zai exactly as in zeta function we are getting this. So, I here you say zai is equal to. So, this is the function you know they are some new things which are coming here one is these tau of chi which I will define in a moment what this is divided by square cube times of 1 minus a and then this character changes to the chi bar, chi bar is the inverse of kai remember the characters form a group. So, chi bar is simply the inverse of kai. So, the only unexplained thing here is tau, tau phi this is a famous quantity a well known quantity it is called gauss sum for a character. This is equal to I am going from 1 to q of so these gauss sums play a very, very important role when in character analysis in general, but I will not dwell into this just say that the gauss sum occurs and multiplied and all of this you can just here I just follow almost blindly what we did. So, these things will just fall out of course, you will have to use those properties of character I listed last time I will do various sum properties that is all you do not have to do that. So, that is for even characters for odd characters it changes a little bit what is u in the last? q is that character the whole character is defined as a map of z q star to complex space. So, q is that implicitly everywhere is actually I should be writing chi of q, but that is just painful to write chi of q everywhere. So, q is again one universal number fixed once and for all it is an odd character when we one needs to change the definition of chi a bit this is there is this plus 1 speaking out. So, physically one has to start with gamma of z over 2 plus 1 here and then sum over because this sum does not quite work out very well. So, again this funny things just pop out of the analysis. So, this defines the functional equation for the L function and using the functional equation now you can see that the all the L functions can be extended over the entire complex space. Once you extended over the entire complex space then again you can talk about the zeros everywhere. So, what would be the zeros of this? This L function again these are governed by the gamma. So, zeros of gamma functions are negative in T s sorry the poles are negative and they are all about one. So, the L function the trivial zeros of the L function will be at negative T s. So, those are trivial zeros just as in case of zero function and then there are non trivial zeros which are again between the strip of zero and beyond one there are no zeros. Now, what about zeros here of this L functions for odd characters? These are all negative odd in T s those are trivial zeros and again the non trivial zeros will be between zero and one. So, everything works out in the same way you can can do the rest of the analysis in the exactly the same way that is this and should talk about the rest of the analysis. So, this completely describes the L functions now I need to relate the side with the L function and the method used is again exactly the same, but there is one intermediate step which is which are this. So, again this is the cousin of psi for psi of x is just sum over n less than equal to x of lambda n and psi of x chi is summation n less than equal to x chi of n times. So, this is a quantity which we will use which we will relate to the L functions and finally, we call what is our target our target is estimate this. So, this is a different psi and this is what we really want, but in order to understand this or to understand that we have to extract out information about this we are we are going to use L function and first we will relate L function with this psi this one psi for this particular character because that psi has no character just I will show you once I am done with it how to relate that psi with this psi. And the relationship between this and L function is exactly again the same how did we derive this relationship with that till function now with the zeta function we just go ahead do the same process this is same as n greater than equal to 1 i of n lambda of n and then delta of x by n and then stick to the integral for the delta function take everything inside now because everything everywhere this chi of n is multiplying as a multiplier is present the integral that you will get will have after the rate of 4 it will be 1 over 2 pi i integral and this goes from c minus i infinity to c plus i infinity minus L prime z prime over 2 p z this one only changes that the zeta prime or zeta is multiplied by i prime and again we do the same thing we can approximate this c minus i r to c plus i r that same expression for error and now that we know L prime over L and we do the same analysis using functional equation for L prime over L and then write this in terms of various poles of this and what we will get is eventually psi of x i 0 there will be not a difference between the trivial character and all that and that difference will come precisely because of the pole being presented z equals 1 trivial character and it being upset for z equals 1 and that is very crucial because this as a pole at z equals 1 so the residue of that comes out to be x and if you recall the x was the leading term I mean that residue is what really gives the main value to psi the rest of the residues are just errors so for the trivial character that residue is present plus there will be again the same thing the sum over all non-trivial zeroes and trivial zeroes and similar Kasani expression so let me just bring that in and psi of x i where i is not equal to i 0 now this residue is not present there it is just error error is taken to mean that whatever the expression of the order this is physically let me write I will write the error when psi done with the generalized Riemann hypothesis so now there is a version of Riemann hypothesis with the Riemann hypothesis this determines what exactly this error is now there is a version of Riemann hypothesis for L functions and which is the form exactly same statement as the Riemann hypothesis except that set of zeta function we are not in particular and this hypothesis is for no matter what the character we choose all non-trivial zeroes of the corresponding function lie on that and if this is true if this is true then psi of x of chi 0 is x plus order q square root x so the error is same except that multiplier q comes in again because of deltion psi of x is just here so this is what we get just doing everything with it for one year good but that still does not has it yet answered our original question which was about that side see this is psi of the second variable side of character we are not interested in psi of the character we are interested in counting this side which is sum n this is equal to x and n being congruent to a mod q that is a quantity so how does one relate this side to the character side so again this sum over sum n which are sort of jumping over the groups we stayed within a residue class we are not q this is messier to analyze we would like to avoid it and replace it with the sum over all n's there is a simple mechanism available for it let us just consider psi of what is this chi bar of a and sum n is equal to x now what is chi bar of a times chi of n because chi is multiplicative is chi bar of a is 1 over chi of n and again using multiplicative property chi of n times chi divided by chi of a is chi of n and now what I want to do is sum over all times so there is a group of characters sum it over all times what is this to change the sum how do we know about this sum whenever n is a this is chi of 1 or let us say not just a whenever n is a that was the extended definition so whenever n is a model of q you get chi of 1 and summing over all characters you get phi of q on the other hand when if n is not equal to a so model q then what is this sum 0 q so this is equal to n less than equal to x which is precisely the quantity how does phi of q come along phi of q how does it come along when n is a mod q and this chi of 1 and then summing over all characters in the group chi of 1 is always 1 the number of characters in the group is exactly chi of 1 over all characters chi of 1 over all chi of 1 over all characters so that you get there for phi of q so that is the expression and which is very nice because now we get this very clearly that is you know what chi of x chi is so let us put this sum into chi 0 and not chi 0 this is 1 over chi of q plus 1 over chi of q this is the error part you know this this is essentially x over phi q plus the error and this is the whole of it is there so this is essentially the error anyway and the error was square root x q log square root x 1 of course you get multiplied by this but this is absolute value 1 so if we just take absolute value of the error and get rid of you can get rid of this the sum over all of this but that sum is same as this so that is what cancels out and you get order square root x q and that that is it and that is what we started out now this is assuming the average but the same technique we used to prove the prime number theorem more or less the same technique can be used to prove the similar theorem out there that is chi of x a q is x over phi q plus times 1 over small over 1 so this error is not a small but is small over 1 without any assumption any push ups on this I look very rapidly it is really repeating everything I mean try this for the echo bit try working out some of this step by step now this of course might appear but this is a number of resting application this particular chi of x a q I want to point out couple of them to justify that this course is a computer science course couple of computer science applications of this here under the device name on I guess the fact this is used very heavily in just about every but most of the number 30 for example it was used to show that primary testing is in D weighted polynomial factorization is they all arise out of this and the way it comes out is a pretty simple so these are the bottom line to all of this is that if you take a subgroup of z q star then and you want to find an element in z q star which is not that we do not have to look we do not have to search too much for that so let me just summarize it so h is a proper subgroup of z q star and as I said we are looking for an element outside the subgroup all we need to do is start from 1 to 3 4 log q to the 4 one of these will be an element can you see it better still out of time anyway let us give it I will not give it as assignment because this is very interesting and I want to do it make sure that you understand it so I will give it as an assignment and we will do it in the next class


You're watching an interview with Dr. Colleen Shogun, 11th Archivist of the United States for National Archives News, part of the National Archives and Records Administration. This interview was recorded on May 23rd, 2023 at the National Archives Building in Washington, D.C. Dr. Shogun, welcome. This is our first time talking for National Archives News. This is your first week here. Tell us about what the last week has been like for you as head of the National Archives. Well, it's been a whirlwind. It's been a very exciting time and I've been waiting a long time for this. I've really enjoyed being able to visit many of the staff who work here at A1 and also had the opportunity to visit Archives 2 and College Perk as well. You were able to actually see some records and some documents in the last week, including General Order No. 3, which is really a treasure here. What's it been like to see those records up close, first-hand?  I wasn't even expecting to see General Order No. 3 when I walked into that room, so that was a very welcome surprise considering that we are entering into civic season very soon with Juneteenth and then, of course, Fourth of July. What are you most looking forward to as Archivist of the United States? I really am looking forward to learning. The Archives is a complex place. There's a lot of diversity of programs, diversity of people who work at the Archives, and what I'm looking forward to most is being able to, of course, get to know the people who work here in the Washington, D.C. area, but also to travel to the 40-some other locations around the United States that also house and preserve federal records. Are you planning to visit every facility? I will visit every facility, and we will try to group those in a way that makes sense so that I can visit more than in many trips. I'll be able to visit more than one facility in a given trip, but we'll try to do this as efficiently and economically as possible. Your first one up is NPRC, the National Crystal Records. My first visit outside of Washington, D.C., outside of Archives I or Archives II will be to the NPRC in St. Louis and then also to the Civilian Records in Valmire. There is a lot going on down there. Yes, there is. If you watched any of my confirmation hearing or any of the interaction that I had with the Homeland Security and Government Affairs Committee that considered my nomination, I said this in both of my hearings, that that would be my top priority, top-discreet priority. There's larger priorities, but I view veterans' records as a critical part of access. That's an important part of keeping that strategic focus. Due to really no fault of anyone, there is a backlog of those records requests due to the pandemic, and we're figuring out ways in which we can reduce that backlog and eliminate that backlog as quickly as possible so that we can serve our veterans' community and they can have access to their full service record if they need it. You've said that you were going to be in sort of listening and learning mode these first few months, I guess. What does that mean for you? What is this listening and learning mode to start off with? Like I said, this place is a very complex place. So it's not just that there's one or two discrete functions at the National Archives. There's many functions. So when I say listening and learning, I do mean that to understand what a variety of divisions and programs do, what their mission is. And then also hearing from staff, what are the problems? What are the things that you're worried about or concerned about? And trying to chronofill those for myself, keep track of them, and figure out ways in which we're able to make things better. Not for our staff, of course, but also for American citizens and the customers that come here to view the records and engage with the archives. This has definitely been, for the National Archives, a very high profile few years. Is there an opportunity in that to engage more with the public, to perhaps engage more with communities that we have not engaged sufficiently with before? I think there is. I think that, yes, it's been a extraordinary 12 months to 24 months with the National Archives. So it's been unprecedented in that way. If you had maybe walked out into the street and asked anybody over a year ago, do you know what the National Archives was? They may, if they saw National Treasure, they may, oh, is that the place where the declaration is? They may know that. Now I think you would go out and ask people, particularly people who watch the news or view the news on some regular basis. They will have an idea of the role of the National Archives and what it does. It may not be a full role, a fully accurate depiction of what NARA does, but at least we're on people's radars. And I think with that, it poses a lot of opportunities. So we want people that are curious about us, that want to learn more, go to the website. Of course, that's how people are going to across the United States, mostly engage with us. And we want them to learn more about how the agency works, of course, but also to engage with the records and particularly the records we have online. So we should always be trying to figure out how are we going to convert people who are curious about the archives or even our visitors that come here to Washington, D.C. to view the founding documents. How can we convert those individuals into users? And we have to really think about that. People of casual interest who hear the archives in the news, want to make them users, but also the people, once again, who physically visit us in D.C. or any of the other installations across the United States presidential library, for example. How can we convert them into a user that is able to really engage with our records for a lifetime? When you spoke to staff for the first time last week during our all hands meeting, you made a comment about the personal aspect of finding personal records within the National Archives system and then just the bigger picture, you know, pulling these massive founding documents. We have so many of the crucial documents and records of the country. Can you speak more to that? I guess the versatility of the National Archives for the public? Right. We have to meet people where they are, where they want to come and interact with us. There will be people that will be, you know, fishing autos and lovers of American history, and they will want to see the most important documents like I was able to see that leads to the creation, commemorates Juneteenth, leads to the creation eventually of a federal holiday to commemorate that moment. So there will be people that will be very appreciative of that. But there will also be people who are looking at immigration records, that are looking at census records, who are looking for their veterans' records or maybe their parents or their siblings' veterans' records. So very individual type of experiences and either seeing those for meaningful reasons or seeing them for reasons because they need those records to establish criteria for benefits or other things that the federal government really does owe them in a fair manner. And so we have to realize that people are coming from all kinds of different perspectives, and we have to be able to once again serve people for the reason that they are coming to the National Archives. That also means serving communities that have maybe traditionally used the National Archives previously. And that will determine strategically, and I know this work is already being done here at the National Archives, but thinking about what records we choose to digitize and make available online and in the catalog, records that, for example, the Alaska Native records. And that's really critically important because otherwise how are people going to be able to access those records? There's real barriers there. And so we ask, why aren't all Americans using the National Archives? It's because of those barriers. And so we have to figure out where those barriers are and how can we eliminate them. And once again, throwing the treasure chest open to everyone also means keeping that in mind when we decide strategically where to put resources for things like digitization. When you think forward, you've been in this position for not even a week yet, but when you think forward to what you want your legacy to be as the 11th archivist of the United States, the first woman who's held this position permanently, what do you see as what you'd like your legacy to be here? One word I really keep in my head, which is access. And I mean access in all the ways that we've talked about in this interview. Access for people who are curious, who want to learn more. Access for people who need the records for a particular reason. Access for people that maybe haven't been interacting with the government agency or government institution intimidating. I mean, this is a beautiful building. But it is also an intimidating building when you when you walk up and you know in the way designed and how it is. So it can be intimidating for some people. So we have to figure out ways in which we make sure that all Americans feel welcome at the National Archives and they're able to go on their own journey and facilitate it. That's the word that I keep in my head and it means a lot of different things. It doesn't just mean one thing, but we are here to preserve those records, but we are also here to share them. And to me, that's very, very important. We have to keep both of those elements really at the foremost of our minds as we're doing our work.


You too team keep it clean. What's going on? It's engraving here with another video and in this video just to really touch on something that has sort of been going around and a lot of people have reason to believe that something could be going down because it was really completely random it's completely random and Especially just we always say timing is everything. We say that all the time Because it is and the timing of these events that led up to this Could lead one to believe that again something may be going down, but again, we'll see so Take you back Two days ago on Sunday The unfortunate circumstance with Tony Jefferson being injured and not only being injured, but him being done for the year So he's out for the remainder of 2019 season and it could possibly go into the 2020 season. Hopefully for his sake it doesn't But we just we just got a way to see what happens So the Ravens were not only down a starting safety They were also down that experience and Ravens They they do not like They do not like going into seasons being in seasons and having guys who don't really have much experience as primary players And I know some of y'all gonna be well. What about Lamar Jackson? Then Quarterbacks, it's a little bit different Especially at the time of flakos career that it was because again the same thing happened with flakko where he took over for For what's his name of a Kyle baller? Troy Smith, but they didn't want him to He wasn't supposed to be the starter But then the injuries happen. I think Kyle ball is shoulder and Troy Smith with his um, his tonsil infection Even though some people thought that maybe it was mono like it's the same Donald has well now. He's clear. He's back So congrats the same Donald, but um anyway flakos thrust into the starting role due to injury Lamar Jackson was thrust into the starting role due to injury but Ravens typically that they don't like to Go into starting roles with guys that don't really have experience so in The situation that they found themselves in You do still have a Chuck Clark You do still have a Dishon Elliott, but the Sean Elliott doesn't really had he doesn't have any experience starting Chuck Clark has experienced and he is somebody that the Ravens they ran to and raved about of For all definitely last year in this offseason two But he's got experience from last season starting when Tony Jefferson went out But that was on a much different defense than What we're in now It's a much different defense Like and we lost again. I remember talking about it all offseason Like everybody was saying oh the Ravens they lost so much on defense Are they gonna still be able to bounce back and I was like, please man. This is what Ravens do This is what Ravens do they lose pieces but they always bounce back. They'll be just fine. I Thought there was no worries and I thought well, of course They may drop off a little bit, but I drop off of them from the number one defense I say worst-case scenario. They'll be in the top 10 worst-case scenario But I expected them to be in the top five But again, it's like I said plenty of times before I underestimated that leadership and I estimate underestimated that Experience and I underestimated the football smarts that we had before So again, like I said, this is a much different defense But we'll get a dose of what Chuck Clark has because I I surely expect him to start and again with Deshaun Elliot I expect him to get a lot more playing time but they put They placed Tony Jefferson on injured reserve They placed him on injured reserve and then they didn't make a move. No, the only move they made was signing Sean monster to the practice squad He was he was a he was on Patriots practice squad. I don't know what happened But then Raven signing to their practice squad But there was still they still hadn't made a move And it came out last night that they ended up signing a Jihad Ward Who used to be on the coats used to be on the Cowboys used to be on the Raiders? young guy 26 defensive linemen and I was thinking okay. I Don't know much about them But hey, welcome to the flock But before they even did that there was a tweet that was going around There was a tweet going around from a certain safety that a lot of people are familiar with and He was actually featured in question from subscribers last year when he was released from the Redskins and that is DJ Swinger Now last year he was released from the Redskins and he got scooped up by the Cardinals right away and He was he was actually pretty good for the Redskins But he him and the coaches fell out of favor with each other and it just didn't end up working out at all so Cardinals picked them up But then they end up letting them go They end up letting them go. So then he tweeted this and This was yesterday that he tweeted it. So it wasn't like right after Cardinals let him go anything. It was yesterday and I Was trying to look for anything that could have led to him tweeting this But I couldn't find a thing Now what he tweeted it got a lot of people buzzin. Let's read it. I grew up watching sugar Ray Lewis and he tagged Ray Lewis and Uncle quick 20 ER that being a read So again, let me just read it word for word because he tagged both Ray Lewis and a tree when he mentioned it So I grew up watching sugar Ray Lewis and Uncle quick 20 ER. They paved the way for great defenses They gave us the model the passion attention to detail the blueprint. So of course Of course what? He didn't say anything about that. He didn't mention anything after that. He just said so of course Looking through his tweets. He didn't like any any other tweets He didn't tweet anything yet. Well, the only thing he tweeted was Telling people to go follow somebody who will make some clothes or has a clothing line or something But anyway in regards to any moves that he has coming up nothing We got nothing after that So again, what what is this? So of course? What what does he speak of? And let's let's read the tweet again He said I grew up watching sugar Ray Lewis and uncle quick 20 ER. That's Ed Reid They paved the way for great defenses. They gave us the model the passion attention to detail the blueprint. So of course Dot dot dot So he left all of us hanging He left everybody hanging in it and just going through some of the replies My guy skeptic goes said what is happening? what's going on and Then my guy Jeff from I see he said don't do this to me and somebody named Kelsey said don't you play with my emotions like this? That's what he's doing. He he certainly is playing with people's emotions Ravens just lost the safety with a lot of experience and They have to inexperienced safeties and they have to inexperienced safeties at a time where the defense the communication on defense has not been good It has not been good The experience that we have on defense with lack of experience is not good and It's had shown every single game now again that last game against the Steelers That was a big step in the right direction Regardless if it was against Mason Rudolph regardless of if it was against Hodges It was a step in the right direction because they were actually starting to eliminate a lot of the problems that they had been having Week after week after week after week after week Having guys run just wide open and free and not tackle it so One would think like hey all the Ravens really making a move for a DJ swanja Are they signing a DJ swanja? We don't know But this tweet gave us so much speculation now something else that gives us a lot of spec- speculation too It came from my guy one Brandon He has sent me a message just this morning And he said hey love the V is never stop. I appreciate that. Thank you But he said about that tweet from DJ swanja My guy Brandon is an investigator And I know a lot a lot of Ravens fans. They do it when these players start saying this stuff Ravens fans. That's one thing I love about y'all. I love about y'all a persistent and y'all do not give up Y'all be trying to crack these cases and I love it cuz it's so fun But in a team keeping clean y'all be on it man. Y'all be on it straight up But anyway, he said about that tweet from DJ swanja. I checked his IG and he's followed by Earl Thomas Tony Jefferson Trace McSawley and Dashaun Elliott So it said he's followed by he's followed by those guys So, I mean the first two I Don't think the first to really tell a story. I don't think the first to really say much because Earl and TJ have been in the league for a while Just like DJ swanja has But with him being followed by Trace McSawley And Dashaun Elliott, I don't know But I'm sure we'll find out soon enough and I think whatever we find out it would definitely be sooner rather than later because They did they have 53 people on the roster. They have 53 men on the roster Now that is something that against the Browns. They didn't go into that game for they went into that game with 52 men Maybe that's why they lost so bad because they were missing a guy But um, they had 53 But again, like I said earlier in the previous video, I really do believe and again It's no offense against him personally anything like that But I really do believe Jihad Ward is just a placeholder for something that the Ravens are trying to do in the future I um, I don't think that He's gonna be on the team for very long Even if he makes it to Sunday, I He's not gonna be active He's not gonna be active So I just think he's just he's there to hold down a roster spot Just until they make whatever that next move maybe or the next moves plural So we'll see but this tweet it just It's making us speculate It's making us speculate because again, there's no context with the tweet. There's nothing surrounding it There's nothing that came before the tweet and there's nothing that came after that lets us know anything About what he means So anyway, just to just to read it one last time Just so y'all can think about it one last time because just in case anybody doesn't have access to Twitter One last time. He said I grew up watching Sugar Ray Lewis and uncle quick 20 ER. It read They paved the way for great defenses They gave us the model the passion attention to detail the blueprint. So of course So of course There's no of course about that because we have no clue what he's talking about. But anyway We'll continue to wait. We'll continue to watch and we'll continue to see what goes down Team keep it clean. I appreciate y'all. I love y'all And I'm out


Did you get enough coffee and cake or apples? Now, Claudio Jäger is going to speak about OpenBSD as a routing platform. Yeah, good one. So yeah, I will talk about using OpenBSD as a router. I will cover more or less from where we're coming and where we actually try to go in the next couple of releases. And I will also focus mainly on what happened during the last year in OpenBSD in this area. So the past, from where are we coming? A lot of people are using OpenBSD as firewall and I think that's one of the key strengths of OpenBSD with PF which is probably one of the best firewalls available at the moment. Then we have AltQ which implements quality of, where you can implement quality of service policies. A other feature that we added a couple of years ago was Carp and together with PF Sync you actually can start doing high reliability firewalls that fail over without even actually losing TCP connections. Then Trunk was added to bundle Ethernet links. In FreeBSD this is now the aggregate driver. It's called lag, I think. You can load balance, you can round rob in and you can even fail over the Ethernet links. So Trunk together with Carp you actually can build up a system that will always be reachable even if one switch is lost because you can use the Trunk failover and add Carp on top of it and by doing that together you get a really reliable system. One other thing that a lot of people don't know that we can do that is so-called MBUFF tax. MBUFF tax is something that is totally inside the kernel and not actually visible to the user land. MBUFF tax are here that you actually can add metadata to your packets that flow through the network stack. This is mostly used by PF to actually tag packets incoming and then you actually can do specific matching on the outgoing rules and by doing that you can actually simplify your rule set normally quite drastically. In the routing area we started first with OpenBGPD that was in 3.5 and through the years now we already have quite a lot of support for various RFCs and also some other stuff that's probably unique in OSPFD in BGPD. So first one of the most important things about BGPD is that it has actually an atomic configuration reload so everything is based on your configuration file and you reload the configuration file. This is really different to the approach that most other routing architectures are using by like Zebra, Quagga or Cisco they normally have the CLI and you start editing or changing your configuration and while you hit enter it's already starting to try making a connection or whatever with and that normally can cause quite troubles if you start reconfiguring your systems. We have support for BGPD communities. You can check, set and remove the communities. We have multi-protocol capabilities to support IPv6. We can do few BGPD specific RFC like root reflection and root refresh.  This is normally handy when you have a lot of routers. Root refresh is a concept that you can request your neighbor to actually resend the whole routing table but it's a little bit of a crappy RFC. We have inbound outbound software configuration that means when you reload your configuration and you have changed your filter configuration in BGPD you no longer have to clear the neighbor sessions to catch up with the filter changes. It's doing it now while you actually reload the configuration. Outbound software configuration does not need additional memory but inbound software configuration because it actually needs to know what the host sent me and they have to keep this information around needs more memory. We're using a, say, copy and write sheen there so we normally, if you don't modify too much thing we don't actually need a lot more memory for inbound software reconfiguration. These are the OpenBGPD specials. This is stuff that we support in OpenBGPD that's normally not seen in other BGPD events. We have a possibility to add prefixes to a PF table. Even if the prefixes are actually not valid for the forwarding path you can still add them to a table. We have so-called root label support. Root label is a label that we attach to a root in the kernel and PF can actually then look at this label and do decision-based on the label. This comes in handy if you want to do quality of service if you want to prefer certain links or if you just say, okay, I have my upstream provider that is where I have to look that it's not pushing too much traffic out or I want to actually reduce the amount of traffic sent to him. I can use these root labels. We have support for carp interfaces in BGPD so that when we can do BGPD failover with carp this is probably handy if people want to run it at like an internet exchange point and they only get one IP address but they actually want to have a redundant system. You have your two BGPD routers running. One is in backup. It's actually having no active sessions and the other, the master makes all connections and if the master disappears the backup will start to open up all connections and that normally works a lot faster than waiting for all timeouts and renegotiation of the sessions. We support TCP MD5 and IPsec as security mechanisms. They're directly integrated into configuration so you don't have to fiddle around with special IPsec configuration and like TCP MD5 it's just a simple line in the configuration. You just give the key and it's just working. Another really special thing is that we have some special macro. We could say it's the neighbor IS value that you can add to communities. The idea behind this is that a lot of configurations normally try to add communities based on the neighbor where it received the prefix or where it is sending to and this makes it a lot easier because you can simplify your configuration. As an example at the Telehouse Internet Exchange in Zurich we switched from a Zebra system to an open BGPD system. On Zebra we had to actually configure special root maps for every neighbor and just normally the config ended up with a couple of thousand lines and we replaced it with open BGPD that does actually the same thing and it's 20 lines of configuration. So that's the thing that's pretty cool. The other rooting daemon we have that is OpenOS BFD that's an internal gateway protocol daemon. We added basic protocol support and we are able to redistribute starting connected networks. So that's not a lot of stuff that we support and why is it? So in the last... It's now two and a half years that the OSPFD is in the tree and in the first one and a half years we mostly fought with the state machines and the various interactions between all OSPF daemons in the network. It's a pretty big mess because it's all multicast and everybody talks with everybody and you have to do the right decisions based on your view and in the end all machines need actually to have the same information and even small errors normally end up with like crazy instabilities in your network. One of the big problems is that the RFC that described me as OSPFD is not very explicit written. They have some gray areas where you have to figure out what you actually have to do. One other problem is that we have found a few systems that are actually violating the RFC so you have to add workarounds to get them working. In the end OSPF is a lot harder to implement than BGP because BGP is using simple TCP session. You talk to your neighbor, you get his stuff, you get all the pref access and then you do a local calculation and you're done and if you're not getting the stuff right it's okay your routing table is probably not 100% correct but it doesn't result in like a meltdown of your network whereas in OSPFD every router communicates through multicast messaging flooding their information out to the network and if you miss updates or if you interpret them wrong you actually get a total wrong view of the network and normally this can result in stuff like evil routing loops that can bring down networks. What did we do during the last year? This is mostly from 4.0 to 4.1. In the kernel we added in PF a new thing that's unicast reverse path forwarding checks. The idea behind this is that you actually take the source address of the packet that is incoming, you do a root lookup with it and then you compare the outgoing interface of that root with the incoming interface where the packet came in and if they do not match then this check failed and you can deny the packet based on that. So it's a little bit an anti-spoof on steroids. It's working normally very good for routers with the default root or actually firewalls like the end firewalls on your border. It normally does not really work well in the middle of your core network where routing can go various paths. We added support for multi-path routing. Actually it's equal cost multi-path routing. So it's possible to define multiple next hops to a specific network and the system will then load balance the connections. The algorithm we use is built so that we use the source and destination address to build up a hash so that all connections from one host to another host always take the same path unless you remove the path from the tree and the idea behind this is to solve the problems that you normally get with multi-path routing in TCP because when you have different paths in TCP you normally get problems because packets are able to surpass others and that normally results in window changes and the receiver normally closes down the window because it thinks that there is a network congestion and so you get pretty bad speed when this happens. Another thing we added is the carved emotion counter. The carved emotion counter is a concept to make it possible that the user land has a feedback mechanism to the carved interface to make the carved interface to do a failover even if the system itself is still running. So you can use the carved emotion counter to... on boot up we raise the emotion counter and by doing that the system that's still in the phase of booting up doesn't get master. This is used like in Saucing D which is our IPsec failover daemon. When that one boots up it raises the emotion counter and then it does all the public key calculation which can take a while and does exchanging the keys and everything and only when it's finished it will reduce the emotion counter and then the master system will normally take over again from the backup system. This is a bit... it really helps and it can be used also with other daemons. We have it now in current. We have it in BGPD. We have it in OSPFD. We have it in Saucing D. So multiple daemons can tell if the system is in good condition or not. This stuff here is mostly from 4.1. So in 4.1 we added support for multiple routing tables. It's still very preliminary but the basic idea is working. So you can have multiple tables in your kernel. You can add routes to these tables and you let the PF do the selection of which table it should use for a rule. So what it actually does is it lets you do policy routing on a higher level than with the Route 2 statement that is already part of PF. You can do a lot more with it but it also comes with the cause that the setup is more complex than a simple Route 2 rule. We added rapid spanning tree protocol support in bridge and it's actually now the default. So no longer 40 second wait times with spanning tree. It's a lot better than the old spanning tree protocol but I'm still not really fan of it. Then we added a third routing daemon or actually a rewritten one. We added a version 2 routing daemon. It is mostly intended to replace the really old Route D which is an evil piece of code. It's mostly based on OSPFD so it's looking very similar but it's a lot simpler than OSPFD because RIPD is from the protocol. It's pretty simple and there are still like small appliances that normally only can talk RIP and not OSPF or BGP so you still need a RIP capable routing daemon in the system. Another thing that was added is host state D. There was already a talk about it so I will keep it really short. It's a load balancing monitoring daemon for layer 3 and layer 7 and I think it's a pretty cool application because you can do really crazy stuff with it. This is the stuff that we changed in BGPD during the last year. As I said, we added the capability to influence the carb demotion counter so it's possible to flag your most important sessions with the carb demotion counter so when you're losing really important sessions like your full feed then you can signal your system to fail over to the backup that probably still has the feed. The other thing we added is a max prefix timeout. Maximum prefixes are normally used in unpeering sessions where you just say okay, we limit the number of prefixes to 10, to 50, to 100, to 2000s depending on your neighbor and if they hit the limit until now it was so that the session was administratively taken down and somebody had to log in and clear the session again to bring it up again.  This is mostly a thing to make you sleep longer during night because normally stuff like this happens in the middle of the night and then suddenly somebody calls you, could you not please clear your session? So it's something for the operators. Two other things we added is the BGP-LG and BGP-LGS-H tools. One is a CGI written in C to do looking glass operations directly with OpenBGPD. It runs in our change-rooted HTTPD daemon or it's able to run in there. It's using the restricted control socket from BGPD so it only can read stuff. It's not able to change anything so you can just do all the show commands but everything that would actually change the state of BGPD is not allowed. The BGP-LGS-H is more or less the same application. It's just intended to be a CLI that simulates the way a Cisco works and it's mostly intended for remote looking glass application and can telnet or SSH into your machine and getting that information out. In OSPF we finally started to add a couple of new things that because it started to get more stable. We added support for or actually we more or less rewrote the redistribution code so it's now possible to depend on the redistribution to depend on routing labels. It's also possible to negate redistribution rules so you can say no redistribute 10 slash 8 so you don't redistribute that internal network. We added reload support which is I think one of the most important things that was missing a long time. It's no longer necessary to restart your OSPFD to change configurations. It's now possible to run OSPFD if you have multiple networks on the same interface then it's now possible to run OSPFD on all those networks. This is something that was a specific feature that Quagga and Zebra had but e.g. a Cisco is not able to do that. So you cannot have two OSPF running or actually having multiple networks on a Cisco and have running OSPF on all those networks. The last part is we're now able to define on the redistribution rules the metric and the type so it's possible to define if it is a AS external type one or type two message and you can actually specify the metric. The idea behind this is that you can have multiple router connected to the same network and you want to redistribute the network but you want to define which one is the actual most the router with which the traffic should actually flow through and which ones are just like backups. The problem during 4.2 so one part of the actually in the kernel one big thing that happened was we looked a little bit at the network stack and tried to improve performance and we found a few things that were just like slowing down the system quite massively. One of the most important one is in PF performance was the actual MBOF tax that I talked about earlier. It is the PF meta information that we attached to every packet was actually pretty expensive to do because every time a packet passes through PF it attaches this tag and the tag is allocated with malloc and malloc is not really fast. So by changing that and actually moving this information which is just about 12 bytes or something like this directly into the MBOF packet header we improved the performance by 100% which is quite massive. Then we started to skip stuff that most systems not really active like IPsec. It was so that IPsec even if nothing was configured it started to do root lookups all over the place and these are not really fast so we skipping now these checks if there is no IPsec flow defined and by doing that we actually gained something like 5% in PPS rate. In PF we skip unnecessary check summing. We once added these things to because somebody found out that you can use these check summing you could figure out if it is a firewall or not because a firewall will just drop your packet or actually will reply to you with a reset if you send in a packet with a corrupted check sum whereas an end system will just drop the packet because the check sum is wrong. We did this for every packet that came in and now we are just doing it before sending out the reset and by doing that we actually skip quite a lot of check summing that is not necessary. One last thing we did is we actually profiled the kernel with a 10 gig card that we had a driver for it and we tried to figure out why the performance was so low that we got and while looking at the call graphs we figured out that we had two functions that took extremely amount of time. One was the kernel random pool steering function that was using, I think it was like 20% of CPU time and we figured out that we actually stirred this pool on every packet that was incoming even though the packets that came in all added the same randomness to the pool and in the end it would be enough to do it once per interrupt and we changed this now and that added quite a boost again. The other thing is our pool allocator did also a stupid thing, it actually accessed the timer on every free so by accessing the clock which is pretty slow on a couple of architectures like on AMD64 we had still the, I think it's the old normal clock driver it took so long to access the clock that we ended up with losing a lot of time in this call removing those calls just gave us another 20% of more time to actually process packets there is still a lot more to be done but these were just like the two calls that just like signed out on the profile and they were really easy to fix in BGPD one thing that's really important that we added now is 4 byte AS number support the AS number space is slowly getting out of numbers I think we're now seeing already AS numbers in the range of 50,000 or something like that and it's until now it was just a two octet so it will be out of numbers pretty soon the AS is an autonomous system every ISP or actually everybody that wants to do default free routing needs AS number and it's just a 16 bit value so that's actually the first thing that we're running out before we run out of IPv4 address space or everything else we run out of these and there was now at the beginning it was an internet draft and it's now finally an RFC to move BGPD the protocol to 4 byte AS numbers we were probably one of the first projects to add it officially to our tree there were patches flowing around for Zebra and Quagga but I think they're still not committed in their systems internally BGPD is now always using 4 byte AS numbers so everything is converted to the 4 octet one and the only thing that we don't do is we don't do the native 4 byte AS sessions which are only used if you actually talk to a system that actually has a 4 byte AS number so normally it's turned off because we found out that quite a lot of systems are currently not able to handle this capability correctly and so you have issues to get the session up we added filtering support for IPv6 and we fixed a lot of issues in the IPv6 multi-protocol handling so it seemed that not too many people are actually using IPv6 together with open BGPD and it changed in the last half year and that's why we actually started to find all these bugs in OSPF we added support for stub router advertisements the main issue that this thing is trying to attach is the problem that if you start up your OSPF router and you don't have forwarding enabled or you don't couple your forwarding information base if the kernel routing table doesn't get the updates from the OSPF daemon you end up in a situation that you have a OSPF daemon running in your system in your OSPF cloud that is unable to actually forward traffic and the other systems don't realize that and normally it can happen that then you send traffic to this host that should actually pass the host to another OSPF router so it's actually a transit point and the router doesn't know how to transit the traffic and either it drops it which is actually probably a good thing or it actually creates a loop which brings down probably your network so what we did is we added this stub router advertisement that just if one of these conditions is not if the system is not able to actually run correctly it will only announce himself with the highest metric possible and by doing that the system is just a leave note in your OSPF graph and no traffic is actually flowing through your systems unless it actually has to hit that router we added Carb demotion to OSPF it's now possible to set it on interfaces and even on areas on the interfaces we already tracked the interface date in OSPFD so we just checked the interface date and if the interface goes down we raise the Carb demotion counter on the areas it's a little bit more complex an area for us is considered active as soon as we see another neighbor that is able to transport traffic with us the other really cool thing is now that we are able to map routing labels to AS external tags and by doing that it's possible to distribute policies based on these routing labels to other systems so we have a one-to-one mapping and you can then define that you can have multiple ring levels or something like that and you say okay this network is in ring one, this network is in ring two, this network is in ring three and you just have on all your border routers you have your PF config that's everywhere the same thing that just checks the routing labels and decides based on these routing labels if it is allowed to pass the traffic from one ring to the other and this normally simplifies it one thing that you normally have to use like the PF table or you have somewhere you have to manage all these networks in which class you actually add them and by using OSPF to redistribute this information you no longer have the ability to forget to update one of your systems because they're learning it automatically so I will look a little bit how to use this stuff so Carp and OSPF that's always a little bit a tricky relationship because Carp is doing the same thing as OSPF they try to figure out what's the state of your link and Carp is actually switching between machines and OSPF it's just not working correctly so what you have to do that you don't end up with a half working setup now OSPF honors the Carp state so if it is master or backup if it is master it will redistribute the network if it is backup it will not we now can use a demode group to pre-empt the Carp interface based on the state of a different network so you have your outgoing interface and say okay we demode Carp based on that but now the problems so redistribute connected does not really work with Carp there are two scenarios one is you have a numbered parent interface and then it's so that redistribute Carp will actually monitor your parent interface and not the Carp interface so it will start to redistribute the route even though you're actually in backup state the other thing is there is some strangeness in Carp that when it comes up it announces the route in some strange ways especially if you have a non-numbered parent and Carp has actually to add its network to the routing table it's messing around with the routing table and it's still not 100% correct what it's doing so the redistribution code normally doesn't get it when the system comes up because when it's first adding its network to the backup state BGP doesn't recognize that this is actually a connected route and OSPF neither and so we have to fix that I think I have a fix for it but it's not really... yeah, it's routing table stuff so in the end everybody should use interface Carp in their config that just works and so how does it work? it's normally so that you want to have your client machine in your network or like your server housing have a redundant outgoing router so you have your two OSPF routers at the edge that both have a Carp interface to the inside network and you use this Carp interface IP on all your servers or all your machines as default gateway now if one machine fails the Carp IP will start to flip and that's all okay but until now if one of the outgoing interfaces to the OSPF cloud failed the Carp interface didn't change now we change with the demotion counter we can do that as well so we demote based on the state of ethics P1 and if there happens... if we lose the link there it will actually switch the Carp interface and the other side will become master and start to rebuild the router out so this is about how you set it up and that's the configuration so you have... you assign a router ID to your system you have your area zero configuration which the first four line is for your crypt identification we have two keys we tell the system that it should use the key one as master key but also accept the other one as intermediate we have the main link which is the interface ethics P1 where we just demote the Carp and we announce the Carp interface with interface Carp zero that's the whole OSPF config another thing is that a lot of people probably don't realize already is multi-path routing and so how does it work and is it actually the way to break your network in multiple ways so in multi-path routing you have to know that the return path may not be the same as the one you're sending the stuff out so you get asymmetric routing asymmetric routing is normally a problem when you have firewalls in between it especially if you have stateful firewalls in between it because one machine gets the incoming state and the other one gets the outcomming state and this will not work one really big issue that we still have to figure out how we want to solve it is if you're actually sending out terrific from your connected machine so if you have a TCP session going out from your system the problem is that we do a bind and choose the source IP address and then later on we do the multi-path lookup and it's possible that we actually choose one IP from one interface but actually sending it out on the other interface which normally will get you in trouble with anti-spoof or URPF chicks so you have to look out there the forwarded traffic itself is not affected by this so it's only traffic that is actually coming out of your box that may help this problem but one big issue is that we do not realize when one of the multi-path links is lost so you end up with... if you have two routes and one is no longer reachable then you have like 50% packet loss and it's only like half of your machines is probably affected and the other one isn't so it's probably a little bit of a problem to figure out but actually is the problem at the moment you can work it around with the ES8D and shell script that actually monitors the next hop and then removes the routes if necessary as usual incoming traffic cannot be load balanced that's like with everything you need to enable multi-path with assist control you need to add the minus M path switch to route when you add a second route else the system will not accept it and if you remove a multi-path route you actually have to specify the next hop as well so you have to identify the route by the prefix and by the next hop to be able to remove it now to the policy routing stuff this is still very... yeah it's not really finished but the few information that is probably interesting is that we support multiple routing tables at the moment we limited to 256 tables the main routing table has always the ID0 PF can do the packet classification what is not yet supported is it can only be used in the forwarding path so outgoing connections always use the main table we don't have any link layer information in the various alternate tables so it is not possible to bind interfaces to routing tables or it's not possible to use the same network twice like having it on fxp1 and fxp0 is the same network it doesn't work there is no fallback to the main table so if the route lookup in your alternate table fails the packet is dropped the next hop is actually looked up in the main table so you need to have all next hop in the main tables as already said it's not possible to bind interfaces to specific tables and yeah multiple tables and multi-path routes can be combined that's nothing really... to add something to a routing table you have to specify which table you want to use you have to use the minus t switch to route you can also show the table with the minus t switch it's just... you have to specify it for every action you want to use you can also use minus t0 for the main table but that's the default now what's happening at the moment where are we going? one of the things that already hit the tree was the RTM version bumped with it we changed the routing messages we cleaned them up we used everywhere now 64-bit counters we included the routing table IDs and the routing priority to the various headers and the whole thing is more or less it's more or less compatible with old binaries and it's completely compatible with applications that use that include that route h and when you recompile it you just get the new stuff as I said it's already part of current there was... that was quite a large change and a few things broke while doing that so yeah what was the problem? the problem is RTSOC.C RTSOC.C is one of the most evil parts of the network stack I know there are a lot of bad magics going in there and a lot of dragons hide in that file it's insane another thing that broke was OpenVPN OpenVPN did actually something very stupid they ripped out part of netroute.h and added that to their source files directly so they have like this ifdev freebsd we have this and this and this and this defined ifdev openbsd or netbsd we have this this this this defined and suddenly nothing worked anymore so yeah include netroute.h don't do silly ifdev games and especially if you have the capability to run Autocon for 10 minutes or something like that you should actually do it correctly another thing that we're working on is virtual routing and forwarding that's using the multiple routing tables we are now able to do this because we actually changed the routing messages we still need to change a few other things we need to extend the interface to the restruct efnat to add a default routing table ID so that the incoming traffic is actually bound to the correct virtual routing instance we need to modify the rplucup code and the same thing in IPv6 to support the multiple routing tables so that the rplucups are actually added to the right table and not all end up in the table 0 and yeah we have to support some way of cross VRF routing at the moment I'm not yet sure if we want to just abuse PF because it's already able to select the the routing tables or if we should implement a special loopback interface that has one end in one table and the other end in the other table another thing is routing priorities that is more or less done now and should probably be committed in a couple of weeks the idea behind this is to simplify the synchronization of the routing daemons currently the routing daemons need to keep track of what else happens on the system to understand if we actually have a conflict in routes and we have to decide if it's now the BGP route that we should take or the OSPF one routing priority removes that synchronization need we just track everything in the kernel and the kernel does the decision and so in the end the user line no longer has to do this decision and it simplifies a lot of code we just add a new metric to every route that we add we abuse the multi-path code for that instead of doing equal cost multi-path routing we now have like different cost multi-path routing and we just always use the one with the lowest priority because lower is better and when you add or delete routes you then have to specify which one you actually want to delete so the last thing here route delete behaves strange because of this I fixed this on the train ride to Copenhagen now so this is no longer true in the end the basic functionality is now running it's working on my laptop but there are still dragons so it needs a lot of testing what will happen in OSPF DA in the next couple of months we want to add equal cost multi-path routing to OSPF we have it 95% done there's just the last K route bit missing we want to support stop areas we want to make use of the routing priorities when they get into the tree to simplify the code other thing that we actually consider is not so stubby area support and in the end we want to fix more bugs because there are still some cases where strange things happen they're hard to find another thing that we will start or actually was started is OSPF version 3 that's the IPv6 support for OSPF this will be a new demon because the protocol is quite different we're making slow progress we're now able to send out the first hello packets but a little bit more is needed it is slow mostly because IPv6 is at least I consider it painful because a lot of stuff that is really simple to do on an IPv4 address is very complex on an IPv6 address one of the problems is like you have link local addresses that you don't have in IPv4 that just makes everything a little bit more complex I hope that we have at least a minimal support in OSPF in OpenBSD 4.3 in BGPD we have to fix the MRT dump output until now nobody realized that since we switched to 4-byte AS numbers the output format is no longer correct so we need to fix this we want to use routing priorities again another thing that I want to add is extended communities attributes then one thing that could be fun is the great full restart mechanism together with carb failover that you can actually have a hot-stand-by router running already with the whole routing table ready and when the master fails it just brings all sessions up it already starts routing and just synchronizes the tables again and you actually have no you will actually no longer see even a slightest drop of connectivity the last one is something that is also on my list to do it's the BGP MPLS VPN support that's an extension to the multi-protocol stuff and especially with the idea that we probably get MPLS support in 4.3 these things actually make it's getting more and more interesting we are working on MPLS by using the old Ayami codebase that was written for NetBSD, I think at least 3 years old now it's we need another, we need special routing daemons for MPLS because you have to exchange the switching information we have to add a lot of stuff in the kernel and one thing that we're probably doing different to Ayami is that we do not start to do IP input, IP output hacks to do the forwarding decisions but instead we're trying to implement a generic MPLS interface as an endpoint so that you can just normally route your traffic to the MPLS endpoint or bridge your traffic to the MPLS endpoint and then it will just flow through your MPLS network and get out on the other side in my opinion that's the more logic approach to it so yeah, that's it are there any questions? could you describe more what kind of systems you use for a router? we're normally using i386 or AMD64s we add not too much RAM at the moment I think most of our systems have 1GB of RAM that should be enough for the next couple of years normally we use high-end gigabit cards so either EM, SK or probably BGE and we have to we do a little bit of tuning but not that much so these systems are normally capable of routing quite a lot of traffic to them it's actually using SMP systems with more than two CPUs does not make sense two CPUs is probably okay to have one CPU running the kernel stuff and having the other one running user-land BGP applications stuff any other questions? it's on my list the problem is I don't have enough time so if anybody else wants to do it I'm happy to get this it's probably not that complex but yeah it's tricky yeah yeah it's the trick is if you want to do L2TP version 3 or version 2 or how you mix them together that it's getting easier any other questions? yep yeah MPLS we have a bigger diff outside of the tree and I hope that the guy that is working on it is finally reappearing again because he just disappeared over the last couple of months and I try to push him again to get his stuff and I hope that we can commit it in the next couple yeah let's say in the next month or something like that that we already have something in the tree and then can fix it in tree but this applies and it builds it should apply and it builds I haven't seen it since a long time I have a very early version of it and a lot of other stuff is already fixed and the problem is people that just disappear is a large problem in the open source community we have to move on to the program now if you want on any subject it's pretty available


The Chaplet of the Seven Sorrows of Mary. O God, come to my assistance, O Lord, in case to help me. Glory to the Father, and to the Son, and to the Holy Spirit, as it was in the beginning, and is now and ever shall be, world without end, amen. I grieve for you, O Mary, most sorrowful, in the affliction of your tender heart at the prophecy of the holy and aged Simeon. Dear Mother, by your heart so afflicted, obtain for me the virtue of humility and the gift of the Holy Fear of God. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, in the anguish of your most affectionate heart during the flight into Egypt and your sojourn there. Dear Mother, by your heart so troubled, obtain for me the virtue of generosity, especially towards the poor and the gift of piety. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, in those anxieties which tried your troubled heart at the loss of your dear Jesus. Dear Mother, by your heart so full of anguish, obtain for me the virtue of chastity and the gift of knowledge. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, in the consternation of your heart and meeting Jesus as he carried his cross. Dear Mother, by your heart so troubled, obtain for me the virtue of patience and the gift of fortitude. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, in the martyrdom which your generous heart endured in standing near Jesus in his agony. Dear Mother, by your afflicted heart obtain for me the virtue of temperance and the gift of counsel. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, in the wounding of your compassionate heart when the sight of Jesus was struck by the lance before his body was removed from the cross. Dear Mother, by your heart thus transfixed, obtain for me the virtue of fraternal charity and the gift of understanding. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. I grieve for you, O Mary, most sorrowful, for the pangs that wretched your most loving heart at the burial of Jesus. Dear Mother, by your heart sunk in the bitterness of desolation, obtain for me the virtue of diligence and the gift of wisdom. Hail Mary, full of grace, the Lord is with thee. Blessed art thou among women, and blessed is the fruit of thy womb, Jesus. Holy Mary, Mother of God, pray for us sinners now and at the hour of our death, amen. Let us pray. Let intercession be made for us, we beseech you, O Lord Jesus Christ, now and at the hour of our death, before the throne of your mercy, by the blessed Virgin Mary, your Mother, whose most holy soul was pierced by a sword of sorrow in the hour of your bitter passion.