Skip to content
View khromenokroman's full-sized avatar
  • Russia
  • 04:11 (UTC +02:00)

Block or report khromenokroman

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
khromenokroman/README.md

snake

Roman Khromenok

C++ developer · network software · DPDK · Linux

I build network software in C++ for Linux. At T-Argos I work on a next-generation firewall (NGFW) with a DPDK data plane and a Clixon (NETCONF/RESTCONF/YANG) management plane: transceiver diagnostics, cluster session sync, DHCP relay, CPU isolation for the data plane, kernel modules and configuration migration between YANG model versions.

I also contribute upstream to the projects I use at work.

Open source contributions

systemd (systemd-networkd, sd-dhcp-client, sd-dhcp6-client), merged:

DPDK (lib/ethdev, app/testpmd), 18 patches accepted into dpdk-next-net for DPDK 26.11:

  • Public API to decode pluggable module EEPROM (SFP/QSFP): rte_eth_module_eeprom_parse()
  • testpmd command show port <id> module_eeprom decode
  • SFF-8636 per-lane LOS / LOL / Tx fault flags, SFF-8472 Rx LOS and Tx fault state
  • Newer SFF compliance codes: Fibre Channel 1600/3200/6400 MBytes/sec, SAS 12G/24G
  • Decoder fixes: out-of-bounds read of SFF-8636 thresholds, unaligned access, undefined behavior in SFF-8472 external calibration, Rx power calibration and rounding
  • In review: RFC to move the decoders into a new lib/transceiver library (to be maintained by me), module EEPROM decoding in dpdk-proc-info

All DPDK patches

Clixon (NETCONF/RESTCONF/YANG):

CLIgen: version target in Makefile, Debian packages built in CI

Eclipse iceoryx (zero-copy IPC): ssize_t refactoring for Windows compatibility

Selected projects

Project Description
dpdk_informer C++ library that reports DPDK port state, link, hardware properties and Rx/Tx statistics as JSON
Interface_informer C++ library over netlink: interfaces, addresses, routes and ARP/NDP neighbors as JSON, network namespaces supported
net-map Service that discovers hosts in local subnets with ARP, detects IP conflicts and DHCP servers, shows a web map
wifi-air Terminal tool that shows Wi-Fi networks on air with the real occupied spectrum, to pick non-overlapping channels
vpn VPN tunnel over TUN and UDP with XChaCha20-Poly1305 encryption, plus an Android client
service-monitor Web dashboard for systemd services over D-Bus and system resources from /proc and /sys

Stack

Languages: C++17/20, C, Python, Bash

Networking: DPDK, netlink, ethtool, TCP/IP, VLAN, LACP, OSPF, VPN, SFF-8472/8636 transceivers, MikroTik (MTCNA), Cisco, Huawei

Management plane: NETCONF, RESTCONF, YANG, Clixon, CLIgen, D-Bus

Linux: kernel modules, io_uring, POSIX, systemd

Libraries: Boost.Asio, nlohmann/json, spdlog, fmt, sdbus-c++

Tools: CMake, GoogleTest, GitLab CI, Docker, Ansible, gdb, perf, Valgrind, tcpdump, Wireshark

Contact

GitHub stats

Pinned Loading

  1. karp karp Public

    Модуль ядра для взаимодействия с ARP

    C

  2. netlink netlink Public

    Два userspace приложения (клиент, сервер) которые общаются по протоколу generic-netlink

    C++

  3. Interface_informer Interface_informer Public

    Interface Informer — это современная С++ библиотека для получения детальной информации о сетевых интерфейсах в системах Linux. Библиотека предоставляет полный программный интерфейс для анализа конф…

    C++

  4. dpdk_informer dpdk_informer Public

    DPDK Informer Современная C++ библиотека для получения детальной информации о сетевых интерфейсах, управляемых DPDK (Data Plane Development Kit) в системах Linux. Библиотека предоставляет удобный п…

    C++

  5. net-map net-map Public

    Служба, которая находит хосты в локальных подсетях ARP-запросами и показывает их в браузере: карта каждой подсети, таблица хостов и лента событий. Для каждого хоста видны IP- и MAC-адрес, производи…

    C++

  6. vpn vpn Public

    Простой VPN-туннель на C++17 для Linux.

    C++