eBPF, Sockets, Hop Distance and manually writing eBPF assembly
A friend gave me an interesting task: extract IP TTL values from TCP connections established by a userspace program. This seemingly simple task quickly exploded into an epic Linux system programming hack. The result code is grossly over engineered, but boy, did we learn plenty in the process!

CC BY-SA 2.0 image by Paul Miller
Context
You may wonder why she wanted to inspect the TTL packet field (formally known as "IP Time To Live (TTL)" in IPv4, or "Hop Count" in IPv6)? The reason is simple - she wanted to ensure that the connections are routed outside of our datacenter. The "Hop Distance" - the difference between the TTL value set by the originating machine and the TTL value in the packet received at its destination - shows how many routers the packet crossed. If a packet crossed two or more routers, we know it indeed came from outside of our datacenter.

It's uncommon to look at TTL values (except for their intended purpose of mitigating routing loops by checking when the TTL reaches zero). The normal way to deal with the problem we had would be to blacklist IP ranges of our servers. But it’s not that Continue reading
Amdocs' leadership position in ONAP seems to have given it an entrée with a major public cloud provider. And an Amdocs exec says open source is an environment where you cannot disconnect technical relationships from business.
Metaswitch’s routing and control plane protocols run as applications on top of AT&T’s disaggregated network operating system. That dNOS platform this week moved to the open source community as DANOS.
The disaggregation push of its service provider OS includes support for routers using off-the-shelf silicon, but device support is limited to “a curated set of third-party devices.”
