cndp
Cloud Native Data Plane (CNDP) is a collection of user space libraries to accelerate packet processing for cloud applications using AF_XDP sockets as the primary I/O..
File Explorer
Download Latest Version (.zip)- devcontainer.json
- Dockerfile
- postStartCommand.sh
- user.sh
- codespaces-config.png
- codespaces-options.png
- rebuild-container.png
- reopen-in-container.png
- devcontainer.md
- devcontainer.json
- Dockerfile
- postStartCommand.sh
- user.sh
- cache-build.yml
- cppcheck.yaml
- docker.yml
- pre-commit.yml
- rust-build.yml
- smoke.yml
- super-linter.yml
- update-rust-deps.yml
- dependabot.yml
- Dockerfile
- Dockerfile
- fwd.jsonc
- README.md
- cndp-0-0.yaml
- map-pinning-nad.yaml
- uds-nad.yaml
- cndp-service.yaml
- crio-README.md
- logging-README.md
- README.md
- doxy-api-index.md
- doxy-api.conf.in
- doxy-html-custom.sh
- generate_doxygen.sh
- generate_examples.sh
- meson.build
- index.rst
- linux_gsg.rst
- af_xdp.ini
- ring.ini
- af_packet.rst
- af_xdp.rst
- APIs.svg
- index.rst
- lport_logical_view.png
- memif.rst
- null.rst
- overview.rst
- ring.rst
- anatomy_of_a_node.svg
- arch.svg
- cndp_system_overview.svg
- cnet.svg
- cnet_overview.svg
- cnet_stack_view.svg
- graph_mem_layout.svg
- link_the_nodes.svg
- mempool.svg
- multiple-mempools-umem.svg
- pktmbuf_layout.svg
- ring-dequeue1.svg
- ring-dequeue2.svg
- ring-dequeue3.svg
- ring-enqueue1.svg
- ring-enqueue2.svg
- ring-enqueue3.svg
- ring-modulo1.svg
- ring-modulo2.svg
- ring-mp-enqueue1.svg
- ring-mp-enqueue2.svg
- ring-mp-enqueue3.svg
- ring-mp-enqueue4.svg
- ring-mp-enqueue5.svg
- ring1.svg
- RX-UMEM-Buffer.svg
- TX-UMEM-Buffer.svg
- umem_mbuf.svg
- cnet.rst
- crypto.rst
- glossary.rst
- graph_lib.rst
- idlemgr.rst
- index.rst
- intro.rst
- mempool_lib.rst
- msgchan.rst
- overview.rst
- pktmbuf_lib.rst
- ring_lib.rst
- xskdev_buffer_mgmt.rst
- 20.06.rst
- 20.11.rst
- 21.01.rst
- 21.03.rst
- 21.06.rst
- 21.09.rst
- 22.01.rst
- 22.04.rst
- 22.08.rst
- deprecation.rst
- index.rst
- known_issues.rst
- WG_CNDP.png
- WG_CNDP_Custom_app.png
- WG_CNDP_Traffic_Flow.png
- WG_RUST_HighLevelFlow.png
- cli.rst
- cndpfwd.rst
- cnet_graph.rst
- compiling.rst
- dlb_test.rst
- hello_world.rst
- index.rst
- intro.rst
- k8s_dp_integration.rst
- l3_forward_graph.rst
- phil.rst
- timer.rst
- vpp-plugin.rst
- WireGuard.rst
- index.rst
- testcne.rst
- conf.py
- custom.css
- index.rst
- meson.build
- CNDP_logo.png
- CNDP_logo_small.png
- call-sphinx-build.py
- meson.build
- meson.build
- afxdp_fwd.c
- afxdp_user.c
- meson.build
- main.c
- main.h
- meson.build
- 90-routing-sysctl.conf
- daemons
- frr1.cfg
- frr2.cfg
- logging.sh
- startup.sh
- cnetfrr-graph.jsonc
- Dockerfile
- cndp-frr-overview.png
- cndp-frr-traffic-flow.png
- cleanup-demo.sh
- setup-demo.sh
- README.md
- acl-func.c
- fwd.jsonc
- hs-fwd.c
- l3-fwd.c
- main.c
- main.h
- meson.build
- parse-args.c
- stats.c
- cnet-graph.c
- cnet-graph.h
- cnetfwd-graph.jsonc
- meson.build
- parse-args.c
- stats.c
- logo.jpg
- main.jpg
- cnet-quic.c
- cnet-quic.h
- meson.build
- parse-args.c
- quic-cli.c
- quic.jsonc
- README.md
- server.crt
- server.key
- stats.c
- dlb_test.c
- dlb_test.h
- dlb_test.jsonc
- meson.build
- parse-args.c
- README.md
- stats.c
- main.c
- meson.build
- handler.c
- main.c
- main.h
- meson.build
- parse-args.c
- fwd.c
- fwd.h
- l3fwd-graph.jsonc
- meson.build
- parse-args.c
- stats.c
- main.c
- main.h
- meson.build
- parse-args.c
- phil.c
- phil.h
- phil.jsonc
- main.c
- main.h
- meson.build
- cli.c
- CMakeLists.txt
- cndp.h
- cndp_elog.h
- device.c
- format.c
- input.c
- output.c
- setup.txt
- startup.conf
- .clang-format
- README.md
- meson.build
- cgo_config.go
- const.go
- doc.go
- go.mod
- go.sum
- jcfg.go
- jcfg_test.go
- lport.go
- lport_test.go
- lring.go
- msgchan.go
- packet.go
- packet_test.go
- run_test
- setup_test.go
- system.go
- system_test.go
- types.go
- umem.go
- util.go
- util_test.go
- distributor.go
- cmd.go
- lb.go
- rx.go
- tx.go
- worker.go
- config.jsonc
- go.mod
- go.sum
- README.md
- run_distributor
- fwd.go
- fwd.jsonc
- go.mod
- go.sum
- run_fwd
- doc.go
- go.mod
- go.sum
- run_sampling
- sampling.go
- sampling.jsonc
- cne_test.go
- go.mod
- go.sum
- test_cne
- go.mod
- go.sum
- metrics.go
- metrics_test.go
- watcher.go
- go.mod
- go.sum
- prom_cfg.json
- prometheus.go
- README.md
- cmon.go
- go.mod
- go.sum
- helpers.go
- helpers_tview.go
- panel_irq.go
- panel_netstat.go
- panel_process.go
- panel_sysinfo.go
- run_cmon
- select_window.go
- go.mod
- main.go
- go.mod
- SineCurve.go
- asciichart.go
- asciichart_test.go
- go.mod
- LICENSE
- options.go
- README.rst
- utils.go
- colorize.go
- colorize_test.go
- go.mod
- go.sum
- etimers.go
- etimers_test.go
- go.mod
- go.mod
- go.sum
- graphdata.go
- graphdata_test.go
- go.mod
- hexdump.go
- hexdump_test.go
- go.mod
- go.sum
- irq.go
- irq_test.go
- go.mod
- go.sum
- taborder.go
- taborder_test.go
- go.mod
- ttylog.go
- ttylog_test.go
- const.go
- go.mod
- go.sum
- utils.go
- .gitignore
- main.rs
- Cargo.toml
- config.rs
- error.rs
- instance.rs
- lib.rs
- packet.rs
- port.rs
- port_tx_buff.rs
- util.rs
- Cargo.toml
- fwd.jsonc
- README.md
- run_cne_test.sh
- run_loopback.sh
- bindings.c
- bindings.h
- wrapper.h
- bindings.rs
- lib.rs
- build.rs
- Cargo.toml
- README.md
- main.rs
- Cargo.toml
- fwd.jsonc
- run_echo_server.sh
- main.rs
- Cargo.toml
- fwd.jsonc
- run_fwd.sh
- 0001-Integrate-CNDP-AF-XDP-with-Rust-Wireguard.patch
- 0002-Remove-LD_PRELOAD-from-cndprustwg-script.patch
- 0003-Update-latest-crypto-library-version.patch
- .gitignore
- Cargo.toml
- generate_cne_docs.sh
- README.md
- arp_request.c
- arp_request_priv.h
- cnet_arp.c
- cnet_arp.h
- meson.build
- chnl_callback.c
- chnl_callback_priv.h
- chnl_open.c
- chnl_open_priv.h
- chnl_priv.h
- chnl_recv.c
- chnl_recv_priv.h
- cnet_chnl.c
- cnet_chnl.h
- cnet_chnl_opt.c
- cnet_chnl_opt.h
- meson.build
- cnet_cmds.c
- meson.build
- cnet.c
- cnet.h
- meson.build
- cnet_drv.c
- cnet_drv.h
- meson.build
- cnet_eth.h
- eth_node_api.h
- eth_rx.c
- eth_rx_priv.h
- eth_tx.c
- eth_tx_priv.h
- meson.build
- gtpu.c
- gtpu_priv.h
- meson.build
- cnet_icmp6.c
- cnet_icmp6.h
- cnet_icmp6_chnl.c
- icmp6.h
- icmp6_input.c
- icmp6_input_priv.h
- icmp6_output.c
- icmp6_output_priv.h
- meson.build
- cnet_const.h
- cnet_fib_info.h
- cnet_ip_common.h
- cnet_meta.h
- cnet_node_names.h
- cnet_pkt.h
- cnet_rarp.h
- meson.build
- cnet_ipv4.c
- cnet_ipv4.h
- ip4_forward.c
- ip4_forward_priv.h
- ip4_input.c
- ip4_input_priv.h
- ip4_node_api.h
- ip4_output.c
- ip4_output_priv.h
- ip4_proto.c
- ip4_proto_priv.h
- meson.build
- cnet_ipv6.c
- cnet_ipv6.h
- ip6_flowlabel.c
- ip6_flowlabel.h
- ip6_forward.c
- ip6_forward_priv.h
- ip6_input.c
- ip6_input_priv.h
- ip6_node_api.h
- ip6_output.c
- ip6_output_priv.h
- ip6_proto.c
- ip6_proto_priv.h
- meson.build
- cnet_nd6.c
- cnet_nd6.h
- meson.build
- nd6.c
- nd6.h
- nd6_request.c
- nd6_request_priv.h
- cnet_netif.c
- cnet_netif.h
- meson.build
- cnet_netlink.c
- cnet_netlink.h
- meson.build
- netlink_private.h
- nl_addr.c
- nl_link.c
- nl_neigh.c
- nl_route.c
- drop.c
- meson.build
- null.c
- pkt_ctrl.c
- cnet_pcb.c
- cnet_pcb.h
- meson.build
- cnet_protosw.c
- cnet_protosw.h
- meson.build
- meson.build
- ptype.c
- ptype_priv.h
- kernel_recv.c
- kernel_recv_priv.h
- meson.build
- punt_ether_kernel.c
- punt_ether_kernel_priv.h
- punt_kernel.c
- punt_kernel_priv.h
- cnet_reg.c
- cnet_reg.h
- meson.build
- cnet_route.h
- cnet_route4.c
- cnet_route4.h
- cnet_route6.c
- cnet_route6.h
- meson.build
- cnet_ifshow.c
- cnet_ifshow.h
- cnet_rtshow.c
- cnet_rtshow.h
- meson.build
- cnet_stk.c
- cnet_stk.h
- meson.build
- cnet_tcp.c
- cnet_tcp.h
- cnet_tcp_chnl.c
- cnet_tcp_chnl.h
- meson.build
- tcp_input.c
- tcp_input_priv.h
- tcp_output.c
- tcp_output_priv.h
- cnet_udp.c
- cnet_udp.h
- cnet_udp_chnl.c
- meson.build
- udp_input.c
- udp_input_priv.h
- udp_output.c
- udp_output_priv.h
- meson.build
- meson.build
- uds.c
- uds.h
- meson.build
- uds_connect.c
- uds_connect.h
- meson.build
- cne.c
- cne.h
- cne_private.h
- meson.build
- tailqs.c
- uid.c
- uid.h
- uid_private.h
- cne_event.c
- cne_event.h
- meson.build
- cne_cmp_x86.h
- cne_cuckoo_hash.c
- cne_cuckoo_hash.h
- cne_fbk_hash.c
- cne_fbk_hash.h
- cne_hash.h
- cne_hash_crc.h
- cne_jhash.h
- cne_thash.h
- meson.build
- idlemgr.c
- idlemgr.h
- idlemgr_priv.h
- meson.build
- kvargs.c
- kvargs.h
- meson.build
- cne_log.c
- cne_log.h
- meson.build
- mempool.c
- mempool.h
- mempool_private.h
- mempool_ring.c
- mempool_ring.h
- meson.build
- cne_mmap.c
- cne_mmap.h
- meson.build
- mmap_private.h
- cne_cpuflags.c
- cne_stdio.c
- cne_stdio.h
- cne_system.c
- cne_system.h
- cne_tty.c
- cne_tty.h
- meson.build
- netdev_funcs.c
- netdev_funcs.h
- vt100_out.c
- vt100_out.h
- meson.build
- pktdev.c
- pktdev.h
- pktdev_api.c
- pktdev_api.h
- pktdev_core.h
- pktdev_driver.h
- meson.build
- pktmbuf.c
- pktmbuf.h
- pktmbuf_offload.h
- pktmbuf_ops.c
- pktmbuf_ops.h
- pktmbuf_ptype.c
- pktmbuf_ptype.h
- meson.build
- pmd_af_packet.c
- pmd_af_packet.h
- meson.build
- pmd_af_xdp.c
- pmd_af_xdp.h
- memif.h
- memif_socket.c
- memif_socket.h
- meson.build
- pmd_memif_socket.c
- pmd_memif_socket.h
- meson.build
- pmd_null.c
- pmd_null.h
- meson.build
- pmd_ring.c
- pmd_ring.h
- meson.build
- pmd_tap.c
- pmd_tap.h
- meson.build
- meson.build
- tun_alloc.c
- tun_alloc.h
- meson.build
- cne_ring.c
- cne_ring.h
- cne_ring_api.h
- cne_ring_api_internal.h
- cne_ring_elem.h
- cne_ring_generic.h
- meson.build
- ring_private.h
- meson.build
- txbuff.c
- txbuff.h
- meson.build
- xskdev.c
- xskdev.h
- meson.build
- cne_arp.h
- cne_ether.h
- cne_gre.h
- cne_gtp.h
- cne_icmp.h
- cne_ip.h
- cne_mpls.h
- cne_net.h
- cne_sctp.h
- cne_tcp.h
- cne_udp.h
- cne_atomic.h
- cne_branch_prediction.h
- cne_byteorder.h
- cne_common.h
- cne_cpuflags.h
- cne_cpuid.h
- cne_cycles.h
- cne_gettid.h
- cne_inet.h
- cne_inet4.h
- cne_inet6.h
- cne_isa.h
- cne_lock_annotations.h
- cne_lport.h
- cne_mutex_helper.h
- cne_pause.h
- cne_per_thread.h
- cne_pktcpy.h
- cne_prefetch.h
- cne_rtm.h
- cne_rwlock.h
- cne_spinlock.h
- cne_strings.h
- cne_tailq.h
- cne_test.h
- cne_vec.h
- cne_vect.h
- cne_vect_generic.h
- cne_version.h
- cne_xmmt_ops.h
- meson.build
- cli.c
- cli.h
- cli.rst
- cli_auto_complete.c
- cli_auto_complete.h
- cli_cmap.c
- cli_cmap.h
- cli_cmds.c
- cli_cmds.h
- cli_common.h
- cli_env.c
- cli_env.h
- cli_file.c
- cli_file.h
- cli_gapbuf.c
- cli_gapbuf.h
- cli_help.c
- cli_help.h
- cli_history.c
- cli_history.h
- cli_input.c
- cli_input.h
- cli_lib.rst
- cli_map.c
- cli_map.h
- cli_search.c
- cli_search.h
- cli_vt100.c
- cli_vt100.h
- meson.build
- README
- jcfg.c
- jcfg.h
- jcfg_application.c
- jcfg_decode.c
- jcfg_decode.h
- jcfg_default.c
- jcfg_dump.c
- jcfg_lgroup.c
- jcfg_lport.c
- jcfg_lport_group.c
- jcfg_option.c
- jcfg_print.c
- jcfg_print.h
- jcfg_private.h
- jcfg_process.c
- jcfg_process.h
- jcfg_thread.c
- jcfg_umem.c
- meson.build
- meson.build
- metrics.c
- metrics.h
- meson.build
- acl.h
- acl_bld.c
- acl_gen.c
- acl_run.h
- acl_run_avx2.c
- acl_run_avx2.h
- acl_run_avx512.c
- acl_run_avx512_common.h
- acl_run_avx512x16.h
- acl_run_avx512x8.h
- acl_run_scalar.c
- acl_run_sse.c
- acl_run_sse.h
- acl_vect.h
- cne_acl.c
- cne_acl.h
- cne_acl_osdep.h
- meson.build
- tb_mem.c
- tb_mem.h
- cthread.c
- cthread.h
- cthread_api.h
- cthread_barrier.c
- cthread_barrier.h
- cthread_cond.c
- cthread_cond.h
- cthread_int.h
- cthread_mutex.c
- cthread_mutex.h
- cthread_objcache.h
- cthread_once.c
- cthread_once.h
- cthread_pool.h
- cthread_queue.h
- cthread_sched.c
- cthread_sched.h
- cthread_sema.c
- cthread_sema.h
- cthread_timer.h
- cthread_tls.c
- cthread_tls.h
- ctx.c
- ctx.h
- meson.build
- cne_dsa.c
- cne_dsa.h
- dsa_priv.h
- meson.build
- sw_dsa.c
- cne_fib.c
- cne_fib.h
- cne_fib6.c
- cne_fib6.h
- dir24_8.c
- dir24_8.h
- dir24_8_avx512.c
- dir24_8_avx512.h
- meson.build
- private_fib6.h
- trie.c
- trie.h
- trie_avx512.c
- trie_avx512.h
- cne_graph.h
- cne_graph_worker.h
- graph.c
- graph_debug.c
- graph_ops.c
- graph_populate.c
- graph_private.h
- graph_stats.c
- meson.build
- node.c
- hmap.c
- hmap.h
- meson.build
- cne_meter.c
- cne_meter.h
- meson.build
- meson.build
- msgchan.c
- msgchan.h
- msgchan_priv.h
- ip4_lookup.c
- ip4_rewrite.c
- ip4_rewrite_priv.h
- meson.build
- node_eth_api.h
- node_ip4_api.h
- node_private.h
- null.c
- pkt_cls.c
- pkt_cls_priv.h
- pkt_drop.c
- pktdev_ctrl.c
- pktdev_rx.c
- pktdev_rx_priv.h
- pktdev_tx.c
- pktdev_tx_priv.h
- cne_rib.c
- cne_rib.h
- cne_rib6.c
- cne_rib6.h
- meson.build
- cne_thread.c
- cne_thread.h
- meson.build
- thread_private.h
- cne_timer.c
- cne_timer.h
- meson.build
- crc32.c
- crc32.h
- crc32_sse42.c
- hexdump.c
- hexdump.h
- meson.build
- meson.build
- csock.c
- csock.h
- csock_private.h
- meson.build
- ibroker.c
- ibroker.h
- ibroker_private.h
- ibroker_uintr.h
- meson.build
- uintr_handler.c
- meson.build
- meson.build
- meson.build
- meson.build
- test.c
- test.h
- tst_info.c
- tst_info.h
- cli_input.cc
- cne_log.cc
- mempool_create.cc
- meson.build
- mmap_alloc.cc
- README.md
- uds_create.cc
- example.jsonc
- meson.build
- test-strings.jsonc
- acl_test.c
- acl_test.h
- acl_test_data.h
- cli_cmds.c
- cne_register_test.c
- cne_register_test.h
- cthread_test.c
- cthread_test.h
- dsa_test.c
- dsa_test.h
- fib6_perf_test.c
- fib6_test.c
- fib_perf_test.c
- fib_test.c
- fib_test.h
- graph_perf_test.c
- graph_test.c
- graph_test.h
- hash_perf_test.c
- hash_test.c
- hash_test.h
- hmap_test.c
- hmap_test.h
- ibroker_test.c
- ibroker_test.h
- idlemgr_test.c
- idlemgr_test.h
- jcfg_test.c
- jcfg_test.h
- kvargs_test.c
- kvargs_test.h
- log_test.c
- log_test.h
- loop_test.c
- loop_test.h
- lpm6_data_test.h
- mbuf_test.c
- mbuf_test.h
- mempool_test.c
- mempool_test.h
- meson.build
- meter_test.c
- meter_test.h
- metrics_test.c
- metrics_test.h
- mmap_test.c
- mmap_test.h
- msgchan_test.c
- msgchan_test.h
- parse_args.c
- pkt_test.c
- pkt_test.h
- pktcpy_test.c
- pktcpy_test.h
- pktdev_test.c
- pktdev_test.h
- rib6_test.c
- rib_test.c
- rib_test.h
- ring_api.c
- ring_api.h
- ring_profile.c
- ring_profile.h
- ring_test.c
- ring_test.h
- tailqs_test.c
- tailqs_test.h
- test_timer.c
- test_timer_perf.c
- testcne.c
- testcne.h
- thread_test.c
- thread_test.h
- timer_test.c
- timer_test.h
- txbuff_test.c
- txbuff_test.h
- uid_test.c
- uid_test.h
- vec_test.c
- vec_test.h
- xmmt_ops.h
- xskdev_test.c
- xskdev_test.h
- meson.build
- c_cpp_properties.json
- launch.json
- tasks.json
- check_json.py
- cndp-config.py
- cndp-metrics.py
- cndp.schema
- cne-build.sh
- cpu_layout.py
- gen_requirements.sh
- jsonc_gen.sh
- jsonc_gen_lport_groups.sh
- mklib.sh
- rcndp
- requirements.txt
- run_iwyu.sh
- sudoGDB
- txgen.sh
- cnectl.c
- meson.build
- jsonc2json.c
- meson.build
- _ether.h
- _pcap.c
- _pcap.h
- capture.c
- capture.h
- cksum.c
- cksum.h
- cli-functions.c
- cli-functions.h
- cmds.c
- cmds.h
- cne_net_crc.c
- cne_net_crc.h
- display.c
- display.h
- ether.c
- ether.h
- ipv4.c
- ipv4.h
- ipv6.c
- ipv6.h
- latency.c
- latency.h
- main.c
- meson.build
- net_crc_sse.h
- parse-args.c
- parse-args.h
- pcap.c
- pcap.h
- port-cfg.h
- portlist.c
- portlist.h
- seq.h
- stats.c
- stats.h
- tcp.c
- tcp.h
- txgen.c
- txgen.h
- udp.c
- udp.h
- version.h
- changes.rst
- commands.rst
- conf.py
- copyright.rst
- getting_started.rst
- index.rst
- license.rst
- running.rst
- black-yellow.theme
- white-black.theme
- .gitignore
- changelog.txt
- INSTALL.md
- meson.build
- README.md
- txgen.jsonc
- xdp.cfg
- meson.build
- README.md
- xskmap_load_send.c
- xskmap_load_send.h
- meson.build
- .clang-format
- .dockerignore
- .editorconfig
- .gitignore
- .markdownlint.json
- .pre-commit-config.yaml
- .yamllint.yaml
- CLAUDE.md
- cndp-codespell.precommit-toml
- CONTRIBUTING.md
- INSTALL.md
- LICENSE
- Makefile
- meson.build
- meson_options.txt
- README.md
- VERSION
# Installation Guide
git clone https://github.com/CloudNativeDataPlane/cndp
Downloads the entire project code from GitHub to your computer.
cd cndp
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Python 3 Python is required to use pip.
pip install pre-commit
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
βββ containerization # Container configuration and setup scripts for Docker/K8s
Type this command into your terminal and run it.
Pulled directly from this repo's README.
4. Python
Easypip install pre-commit
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
5. Go
Mediumcd lang/go/bindings/cne
This project's files live in a subfolder, so move into it first.
go build ./...
Compiles the Go program into an executable.
go run .
Runs the Go program directly without a separate build step.
6. Rust
Medium- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cd lang/rs
This project's files live in a subfolder, so move into it first.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
7. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
