Go to content Go to menu

hBPF = eBPF in hardware

Saturday, April 3, 2021

hbpf-logo-l.png Introducing hBPF - an eBPF implementation for FPGAs.

This project was started beginning of 2021 as an experiment of how fast and how far you can get, with using alternate hardware description languages (compared to the classic ‘V’ languages VHDL and Verilog), most of the time open-source tools (compared to expensive, commercial toolchains) and cheap development boards (e.g Arty-S7).

It implements an eBPF CPU using LiteX/Migen, a Python3 based SoC builder and Hardware Definition language (HDL).

[Read More…]

Resolving product shortcomings

Tuesday, November 10, 2020

power-guard-safe.jpg Recently I bought a document safe. This was necessary because some types of documents need to be kept safe even during still ongoing COVID-19 home office. I choose a model with a security grade necessary to legally comply required by the type of documents I work with. And I choose one with a digital keypad so I don’t have to have a physical key but a numeric code. From the time it was ordered, it took about a week to be delivered and some effort (weighs around 50kg) to get it into place. After I put in a fresh 9V battery, set up a security code, and put in some documents, I was done - I thought ….

[Read More…]

HDD Rescue Adventures

Friday, September 11, 2020

hdd-rescue-s.jpg As everybody knows “Make Backups (more than one!!) of your data!!” nowadays is as important as gaining enough sleep or eating healthy. But sometimes you are completely unprepared. This is exactly what happened to me a few days ago. A hard disk with very important source code for a project I’m currently working on suddenly stops working and the last backup was … some weeks ago.

So what to do? Besides calling me self a jackass I had to find a way to get back the data. After researching prices of some professional data rescue companies I came to the conclusion that trying to recover the data myself (and rewriting the lost source code in case my rescue attempt fails) would be cheaper and faster (project deadline is approaching with rapid steps).

 
 
 
 
 
 

[Read More…]

Extending Net-SNMP with Python3

Thursday, September 10, 2020

PyAgentX3 is a pure Python3 implementation of the AgentX protocol (RFC 2741).
It will allow to extend an SNMP agent (e.g Net-SNMP snmpd) by writing AgentX subagents without modifying the original SNMP agent.

RFC 2741: Agent Extensibility (AgentX) Protocol

Code and samples can be found on github.

It features:

  • Open a session with AgentX master, e.g. net-snmpd snmpd, and register a new session.
  • Send Ping request.
  • Register multiple MIB regions.
  • Multiple MIB update classes with custom frequency for each.
  • Support snmpset operations.
  • Reconnect/Retry to master, in case the master restarted.
  • Support for SNMPv2 traps.

Arty-S7-50 MultiNet

Tuesday, June 2, 2020

arty_s7_50_multi_net_pcbs.jpg The prototype of my simple FPGA based SoC with multiple Ethernet interfaces worked so well that I decided to create a PCB for it and increase the number of network interfaces from two to four. It also includes a special PMOD connector for a SD-Card to boot a firmware or Linux from. Also two of the Arty’s four existing PMODs are also still available for extensions. PMOD-C and PMOD-D are no longer available as their pins are used for some of the Ethernet PHY modules.

Due to I/O limitations the Seven Segment Display was removed from the original design.
 
 
 
 
 
 
[Read More…]