{"id":15516205,"url":"https://github.com/dippynark/bpf-sockmap","last_synced_at":"2025-08-13T15:34:53.649Z","repository":{"id":105104387,"uuid":"179162595","full_name":"dippynark/bpf-sockmap","owner":"dippynark","description":"eBPF examples using sockmap maps","archived":false,"fork":false,"pushed_at":"2019-06-25T06:31:38.000Z","size":126,"stargazers_count":22,"open_issues_count":2,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T03:33:29.822Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dippynark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-02T21:37:19.000Z","updated_at":"2025-04-06T13:57:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"5b74d865-97e8-46c1-b1f2-3df07ccb0e06","html_url":"https://github.com/dippynark/bpf-sockmap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dippynark/bpf-sockmap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dippynark%2Fbpf-sockmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dippynark%2Fbpf-sockmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dippynark%2Fbpf-sockmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dippynark%2Fbpf-sockmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dippynark","download_url":"https://codeload.github.com/dippynark/bpf-sockmap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dippynark%2Fbpf-sockmap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261892950,"owners_count":23226019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:06:03.405Z","updated_at":"2025-06-25T14:38:11.522Z","avatar_url":"https://github.com/dippynark.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bpf-sockmap\n\nbpf-sockmap uses [BPF_PROG_TYPE_SK_SKB](https://lwn.net/Articles/731133/) BPF programs to create a simple telnet echo server. It is heavily inspired by the [Cloudflare blog](https://blog.cloudflare.com/sockmap-tcp-splicing-of-the-future/).\n\n## Quickstart\n\n[Vagrant](https://www.vagrantup.com/) can be used to spin up a virtual environment to test the BPF programs. The environment depends on [VirtualBox](https://www.virtualbox.org/wiki/Downloads) but other [providers](https://www.vagrantup.com/docs/providers/) exist.\n\n```\n$ vagrant plugin install vagrant-reload\n$ vagrant box list | grep ubuntu/bionic64 || vagrant box add ubuntu/bionic64\n$ vagrant up\n$ vagrant ssh\n# we are assuming commands are run from within the vagrant vm from here\n$ cd /vagrant\n$ make build\n$ make run\n...\n2019/04/03 00:53:12 listening on address: 0.0.0.0:12345\n# in another terminal watch debug output\n$ sudo cat /sys/kernel/debug/tracing/trace_pipe\n# in yet another terminal start a telnet session\n$ telnet 127.0.0.1 12345\nTrying 127.0.0.1...\nConnected to 127.0.0.1.\nEscape character is '^]'.\nHello!\nHello!\nBye\nBye\n^]q\n\ntelnet\u003e q\nConnection closed.\n```\n\n## Debug\n\nThe generated object file can be inspected using `llvm-objdump`\n\n```\nllvm-objdump -S ./bpf/bpf_sockmap.o\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdippynark%2Fbpf-sockmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdippynark%2Fbpf-sockmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdippynark%2Fbpf-sockmap/lists"}