Archive

Category Archives for "Networking"

Go programs are not portable

A while ago I was asked why I wrote Sim in C++ instead of Go. I stumbled upon my answer again and realized it could be a blog post.

So here’s what I wrote then. I think I stand by it still, and I don’t think the situation has improved.

Why not write portable system tools in Go

My previous experience with “low level” things in Go (being very careful about which syscalls are used, and in which order) has had some frustrations in Go. Especially with portability. E.g. different definitions of syscall.Select between BSDs and Linux, making me have to use reflection at some points. (e.g. see this Go bug.

And to work around those things Go unfortunately uses the antipattern of (essentially) #ifdef __OpenBSD__, which we’ve known for decades is vastly inferior to checking for specific capabilities.

To me the Go proverb “Syscall must always be guarded with build tags” essentially means “Go is not an option for any program that needs to be portable and may at some point in the future require the syscalls package”. And since this tool is meant to be portable, and calls what would be syscall.Setresuid, Continue reading

Events. My experience from taking part in NANOG #84 Hackathon

Hello my friend,

collaboration, team work, team spirit… These and other similar words we are using quite often to show the importance of working together to achieve something big. Especially, if you have very limited time. This is a good description of the hackathon – the team effort to achieve something big (i.e., MVP of working product) in a short term (i.e., in 24 hours). Let’s see what’s that all about.


1
2
3
4
5
No part of this blogpost could be reproduced, stored in a
retrieval system, or transmitted in any form or by any
means, electronic, mechanical or photocopying, recording,
or otherwise, for commercial purposes without the
prior permission of the author.

What Was the Hackathon?

There are many hackathons worldwide. The trend we observe now is that many technical events have hackathon as a warm-up event or a part of the main program. In this case, the event was NANOG 84, which is one of the biggest gatherings for all Service Providers, Telco equipment vendors, and system integrators in North America. It is a massive opportunity to learn some interesting things from some leading companies, like their experience and lessons learned Continue reading

Marvell’s Building Blocks For Carrier Edge, 5G Networking

This article was originally posted on the Packet Pushers Ignition site on December 17, 2020. 5G and edge computing are mainstays of almost every tech company’s growth strategy, but their combined potential for market disruption is acute among network equipment vendors, carriers, and related component suppliers. Both trends have been brewing for years, but have […]

The post Marvell’s Building Blocks For Carrier Edge, 5G Networking appeared first on Packet Pushers.

Interop IP infusion and MikroTik: part 2 – VPLS

VPLS is a pretty common technology in ISPs to either sell layer 2 services or backhaul traffic to a centralized aggregation point to conserve IPv4 space; check out more on that here.

How can I take advantage of segment routing but still deliver the same services? We already looked at how to setup the label switched paths utilizing IP Infusion as a segment routing mapping server in this interop post. Now let’s see how we can deliver a VPLS service over this with mikrotik as a provider edge router.

Delivering a service with a L2VPN

After setting up the IGP and label distribution between the PEs we will start building the L2VPN.

Why a BGP signaled VPLS session instead of LDP signaled VPLS?

In the segment-routing domain there is no LDP running. However, some vendors support static pseudowires or other methods to bring up a targeted LDP session for VPLS. I did some basic testing here couldn’t easily identify the right combination of knobs to make this work. Don’t worry; I’ll come back to it.

BGP signaled VPLS is a standards based technology that both vendors support.

First thing we need to do after having loopback reachability is to build Continue reading

Rust Notes: Enums

An enum is a type which can be ONE of a FEW different variants. // Create an instance of the enum variants with the double colon. let blah = StuffAndThings::Blah; let bleh = StuffAndThings::Bleh(42); let stuff = StuffAndThings::Stuff(String::from("Stuff"), true); let things =...continue reading

Rust Notes: Vectors

A vector is a collection of items of the same type. Vector Considerations When an empty vector is created with Vec::new it is un-allocated until elements are pushed into it. A vector with elements has allocated memory and lives on the heap. A vector is represented as a pointer to the...continue reading

Worth Reading: Performance Testing of Commercial BGP Stacks

For whatever reason, most IT vendors attach “you cannot use this for performance testing and/or publish any results” caveat to their licensing agreements, so it’s really hard to get any independent test results that are not vendor-sponsored and thus suitably biased.

Justin Pietsch managed to get a permission to publish test results of Junos container implementation (cRPD) – no surprise there, Junos outperformed all open-source implementations Justin tested in the past.

What about other commercial BGP stacks? Justin did the best he could: he published Testing Commercial BGP Stacks instructions, so you can do the measurements on your own.

#NANOG84 Hackathon: No plan survives first contact with go-getter students ‍‍‍

Austin, 12–13 February 2022

So there I was, ready to do battle in my blue corner of the ring. Together with Anton Karneliuk from Karneliuk.com — author of pyGNMI among other things — we got started on a multi-vendor NAPALM driver using gNMI as a backend.

Working around the clock in our different time zones, in full blown follow-the-moon style, we managed to get a basic NAPALM get_facts working for both Arista cEOS and Nokia SR Linux, at some point late Saturday night.

NAPALM get_facts for cEOS, using “vendor” gnmi

Working together to build the Internet of tomorrow®

On Sunday a group of students from University of Colorado Boulder joined the party, and it quickly became apparent that our hacking plans would have to change. Because important as multi-vendor compatibility issues are, inter-generation transfer of knowledge is even more critical. We already barely understand the networks we have built today — how could we ever expect the next generation to keep things running if we don’t help them understand what we did?

Long story short: I teamed up with Dinesh Kumar Palanivelu and he ended up submitting his first Pull Request: A small step for a man, but a huge win for the NANOG community!

Thanks again Continue reading

Heavy Networking 618: Building Virtual Networks With Console Connect (Sponsored)

On today’s Heavy Networking episode we talk with sponsor Console Connect, which provides software-defined interconnections for enterprises and service providers. Guests Paul Gampe and Jay Turner dig into the Console Connect catalog, including Internet On-Demand, CloudRouter, and some of the interesting partner integrations that provide unique connectivity options.

The post Heavy Networking 618: Building Virtual Networks With Console Connect (Sponsored) appeared first on Packet Pushers.

Heavy Networking 618: Building Virtual Networks With Console Connect (Sponsored)

On today’s Heavy Networking episode we talk with sponsor Console Connect, which provides software-defined interconnections for enterprises and service providers. Guests Paul Gampe and Jay Turner dig into the Console Connect catalog, including Internet On-Demand, CloudRouter, and some of the interesting partner integrations that provide unique connectivity options.

Intel’s custom Bitcoin processor could lead to chips for a supercomputing edge

Here’s one none of us saw coming: Intel is planning to launch a chip specifically designed for blockchain acceleration, including the mining Bitcoins, and much more. Intel has also announced the formation of a new custom compute group within its graphics business unit to develop the chip.In the blog post, Raja Koduri, senior vice president and general manager of the Accelerated Computing Systems and Graphics Group, announced the ASIC without using the Bonanza Mine name that would accelerate the algorithm specifically used in Bitcoin mining and blockchain in general.To read this article in full, please click here

Intel’s custom Bitcoin processor could lead to chips for a supercomputing edge

Here’s one none of us saw coming: Intel is planning to launch a chip specifically designed for blockchain acceleration, including the mining Bitcoins, and much more. Intel has also announced the formation of a new custom compute group within its graphics business unit to develop the chip.In the blog post, Raja Koduri, senior vice president and general manager of the Accelerated Computing Systems and Graphics Group, announced the ASIC without using the Bonanza Mine name that would accelerate the algorithm specifically used in Bitcoin mining and blockchain in general.To read this article in full, please click here