This commit is contained in:
@ -1,7 +1,114 @@
|
||||
---
|
||||
title: "Week 8, Friday:"
|
||||
title: "Week 8, Friday: Nothing works!"
|
||||
date: 2024-09-20T21:55:00+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
{{< image frame="true" width="17em" float="right" src="/img/headline/todo.png" alt="Credit: " >}}
|
||||
{{< image frame="true" width="17em" float="right" src="/img/headline/testbeeld.png" alt="Credit: Nederlands Testbeeld 1994 " >}}
|
||||
|
||||
I wake up at 09:00 and assemble my plans for the day while drinking a cup of _Joe_. I really only
|
||||
have four things to do, but all of them may take a while. Marina helpfully adds two things to the
|
||||
list, but they are simple (and one of them, very rewarding).
|
||||
|
||||
1. This week Neil has been iterating on the `sflow` plugin and he has some questions about
|
||||
performance. I should take the current v4 of the repo out for a spin and report back. This should
|
||||
take about ninety minutes.
|
||||
1. I am flying to Oslo tomorrow and my presentation for NONOG is only partly done. I still have to
|
||||
write about half of it. Luckily, the storyboard is in my mind, I just have to put it on paper and
|
||||
create a bit of artwork for it. Should take about two hours.
|
||||
1. I also need to pack my stuff for tomorrow, and I am not planning on taking much more than a few
|
||||
set of clothes, my wallet, passport and laptop. Travel light! That way you can just say "I did not
|
||||
forget X, I just decided not to take X with me!" and make light of planning failures.
|
||||
1. Yesterday I hung up the IPng switch, router, and hypervisor. But they are only connected to the
|
||||
OOB for the moment, and the connectivity from Luzern to Zurich and Lausanne needs to be prepared.
|
||||
That should take about an hour, including the VPP router installation and enrolling all the machines
|
||||
into Ansible.
|
||||
|
||||
Marina adds two more tasks:
|
||||
1. I need to look up our booking to see how skimpy and cheap I was with luggage. Recently it's
|
||||
been a bit of a thing with airlines that give you _no carryon_ and you're allowed only one personal
|
||||
item of a few kilograms and very limited (sub-backpack) size. I know we're on a small plane, so I
|
||||
need to figure out what's what, maybe do an online checkin and get us going. Easy peasy: fifteen
|
||||
minutes.
|
||||
1. Marina requires a hug, one before lunch and one after lunch. Easy peasy: one minute of hug time
|
||||
per slot, two minutes total. And yaay for the chemical endorfin release, priceless!
|
||||
|
||||
All up, the day will be about five hours of 'stuff to do'. At 10:00 I start with the loadtests. Neil
|
||||
has outdone himself. There was an issue with v3 of the plugin, it was corrupting messages on the
|
||||
shared FIFO queue, but Neil replaced it _with a small shellscript_ (of 25 lines or so) of a
|
||||
multi-writer single-reader FIFO implementation. I loadtest it and its performance is wonderful. I am
|
||||
seeing up to 130K samples/sec being sent out on the _PSAMPLE_ netlink channel now, and their
|
||||
sequence numbers and contents look alright. The time spent in the dataplane i still minimal, and
|
||||
with this performance, we can scale up to 1Gpps (yes, one _billion_ packets/sec!) through the
|
||||
dataplane with really small overhead of ~20 CPU cycles per packet on average. Nice work, Neil!
|
||||
I write up my findings on the ongoing developer mail thread, and leave the LAB router + loadtester
|
||||
powered up.
|
||||
|
||||
I eat lunch and I try to be a bit quick about it. Unfortunately, a light headache is plagueing me
|
||||
yet again, and for some reason I lost my appetite. I fried two beautiful dippy eggs on bread, but I
|
||||
only ate one of them. Marine dippy'd the second one (she only really enjoys the yolk, the eggwhite
|
||||
is, let us say, too healthy for her taste). One egg later, I'm downstairs again, starting on
|
||||
finishing my presentation for next week.
|
||||
|
||||
My presentation will consist of four sections: Babel+VPP, OSPFv3+VPP, the rollout at AS8298, and
|
||||
finally some performance stats and figures of a practical VPP instance. I've written the first two,
|
||||
and need to continue with #3 and then #4. I decide to give myself a reward: after writing the third
|
||||
section on the rollout, I will divert my attention to the IPng footprint in Stollen, Luzern. This
|
||||
reward system works, as I take about fourty minutes to complete this section, and it looks pretty
|
||||
good to me.
|
||||
|
||||
## IPng Site Local VLLs
|
||||
|
||||
I think it'll be fun to make a live video recording of me configuring the IPng connectivity. There's
|
||||
currently a leased line from Zurich to Geneva, which I'll break open in Luzern, and terminate the
|
||||
L2VPN from Zurich newly in Luzern, and then create a new L2VPN from Luzern to Geneva. The recording
|
||||
goes absolutely terribly!! The camera fails halfway through, and after the L2VPN is up, it takes me
|
||||
a full frustating fourty-five minutes to debug what was going wrong. For a second there, I staretd
|
||||
to doubt Centec switches, but luckily my persistence paid off: it was a config issue on IP-Max's
|
||||
ASR9k.
|
||||
|
||||
You may not care for a 30min technobabble, if so, just skip ahead. Considering chances are you are a
|
||||
nerd, and because I kind of had fun with the frustration making it, here it is, cursing and all:
|
||||
|
||||
{{< video src="/media/vdo/2024-09-20 VLLs_12.11.53.mp4" >}}
|
||||
|
||||
## IPng VPP Router
|
||||
|
||||
Alright, with that small (ahem) task out of the way, I get to put my mind to the second half of
|
||||
turning up IPng: the VPP router called `chlzn0.ipng.ch`, a Dell R630 with 2x25G, 4x10G and 2x1G.
|
||||
I've already precabled it and installed Debian, so all I need to do is install and configure VPP,
|
||||
and connect this router to `chrma0.ipng.ch` in Zurich, and `chplo0.ipng.ch` in Geneva. Easy peasy,
|
||||
right? Wrong. The turnup is mostly Ansible, but the configuration is a YAML config file that is
|
||||
maintained in Kees.
|
||||
|
||||
I configure a link on the first 25G port towards Zurich, and see that it can ping6 the router on the
|
||||
other side. Similarly, the second 25G port goes towards Geneva, and pings just fine. OSPFv3 for IPv4
|
||||
and IPv6 quickly come up, and BFD starts running, and I'm only 15 minutes into the task. Yaay! But,
|
||||
it doesn't ping with IPv4, even though it learned the adjacencies and the whole FIB is programmed.
|
||||
Once again, I spend a good 45 minutes convincing myself it's a skill issue. Maybe it's the Mellanox
|
||||
NICs? Maybe it's the VPP install or an issue with Bird? And then I start doing DPDK traces and find
|
||||
the famous `ip4-not-enabled` which I came across in my article on [[Babel with
|
||||
VPP](https://ipng.ch/s/articles/2024/03/06/vpp-with-babel-part-1/)]. Then it dawns on me -- I forgot
|
||||
to make the interfaces `unnumbered`, so they indeed did not have an IPv4 address at all. Jeez, Rick!
|
||||
One simple statement of `unnumbered: loop0` in the YAML file, and the whole thing shoots into
|
||||
action.
|
||||
|
||||
All of the sudden, it's 18:30, crap! What was supposed to be a classic Rick-and-Morty twenty minute
|
||||
in-and-out, turned into a three hour affair. Hahah, I can be such a dweeb sometimes. But, Adriana is
|
||||
here and she's sleeping over tonight because she has a course at the local flower exchange in
|
||||
Wangen. Marina made a delicious broccoli and rice with minced meat, and it's very tasty indeed.
|
||||
|
||||
After dinner I once again go downstairs, because I still have to finish the fourth part of my
|
||||
presentation. Luckily, in this case I had already done all of the loadtests, so I manage to write it
|
||||
pretty quickly, until at 22:30 Marina informs me that the bed is full of my clothes still. Whoops, I
|
||||
forgot one of the tasks: packing for tomorrow! But my backpack is full of Stollen-leftovers, so the
|
||||
best I can do is vacate the clothes from the bed and put them downstairs.
|
||||
|
||||
I finish the presentation at 23:00 and I'm pretty happy with the results! I hope NONOG folks like
|
||||
what I have to say, and that I can fit it all in a fourty minute session. Finally, I hold my
|
||||
backpack upside down and shake it. A few thousand cables, fiber caps, and a few optics come gushing
|
||||
out. Great! Backpack is empty - so I put my clothes in instead, grab wallet + passport, and I'm
|
||||
ready for the trip tomorrow.
|
||||
|
||||
And, although I only had five simple tasks today, I ended up being super slow while literally
|
||||
nothing I set out to do went very well, except for giving Marina hugs :) I didn't even take any
|
||||
pictures today!
|
||||
|
BIN
static/img/headline/testbeeld.png
(Stored with Git LFS)
Normal file
BIN
static/img/headline/testbeeld.png
(Stored with Git LFS)
Normal file
Binary file not shown.
Reference in New Issue
Block a user