Splitting Light: Season 1 - Episode 8


Splitting light

Season 1 Episode 8

Network bits

If you are no longer interested in the newsletter, please unsubscribe​

The Internet is a mesh of connected computers. The equipment that connected these devices are made of chips. But, in the end, how does data move from one chip to another? I was about to learn.
​

The first generation network chip was configured as a local area network. The new version had more memory and logic. We could use it as a router and that meant we could connect it to other networks in more complex ways.
​

However before we could do that, because it was a new generation, we had to rewrite part of our existing code. I continued to work on the software that I had started earlier. Once the chip was correctly initialized, I implemented each network feature one after another. Controlling the ports, the VLANs, MAC address support, FDB support and lastly, network security rules. For each of these features, choices had to be made on how much memory of the chip we used and which settings we would set.
​

Implementing these was quite interesting because the way a chip works with data is completely different than the way you work with it in software. In the software world there are conditions and loops. In the chip world, it was byte masks and byte replacement.
​

Quickly after that we wrote the software to configure routes on the chip but it was cumbersome to use. Support had to be coded in the information system of both the baremetal team and the cloud team. That would require a lot of work. Isn't there an existing standard to manage routes? There is! It’s called BGP! It’s a protocol to exchange route information between peers.

Unlike for the TCP stack I had written, here we could reuse software. I didn't want to rewrite everything. A few software existed and worked on linux, the operating system we used. These software all used an internal operating system protocol. What if we implemented it?
​

So I started to type in the code in my editor. I had the operating system source code and a few other tool’s source code as guides. I could not directly use the code but by looking at the memory of the device and comparing state to state, data to data, I could understand the protocol and implement the features we needed. As the number of lines of code grew, the logic of the code was more and more sound.
​

First testing crafting individual requests by hand, then testing more and more complex workflows. Finally I tested each tool and checked that each action I performed had the result I expected.
​

This was an amazing achievement for me. It was amazing because I had found a way to make the hardware act like a standard linux. I had done this by implementing a not very documented protocol. In a sense, I had broken a mental wall. If we were smart enough with a small amount of work, we could leverage a disproportionate amount of existing tools. By mimicking an abstraction we would enable the team to make the switch to our hardware faster.
​

If you have missed it, you can read the previous episode here​

To pair with :

  • Bastion - Cloud Boat
  • Foundation by Isaac Asimov

Vincent Auclair

Connect with me on your favorite network!

​

Payson, Payson, AZ 85541
​Unsubscribe · Preferences​

Symbol Sled

Business, tech, and life by a nerd. New every Tuesday: Splitting Light: The Prism of Growth and Discovery.

Read more from Symbol Sled

Splitting light Season 3 Episode 15 Covid19 bracket If you are no longer interested in the newsletter, please unsubscribe March to June 2020 Covid19 fell upon us. Interestingly a few days before the first lockdown, both Djazia and I got very sick. Most likely Covid. For me, this pandemic changed my life in ways I did not expect. For the first time I started to work remotely, like everyone who had a desk job. Even though I had had a work laptop since I had joined Scaleway it was the first time...

Direct and Indirect usage of Object storage

Splitting light Season 3 Episode 14 Attribution If you are no longer interested in the newsletter, please unsubscribe March 2019 The object storage product is both a user facing product and an infrastructure product. The compute team used it to store images and client virtual machines backups. The registry used it to store container images. The databases team to store client database backups. And so on for nearly every product and service at Scaleway. Both direct and indirect usage of Object...

Splitting light Season 3 Episode 13 Bills reconciliation If you are no longer interested in the newsletter, please unsubscribe January to March 2019 When you have a complex system there are always going to be discrepancies between them. In our case the discrepancies were in the billing systems. We had five different data sources. None agreed on the numbers. Let me introduce our five systems. Observability of the disk usage as well as the incoming and outgoing bandwidth. The client...