





















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Assesses knowledge of contributing to the FD.io (Fast Data) project, including Vector Packet Processing (VPP), CSIT, and related components. Candidates demonstrate ability to navigate repositories, fix bugs, write patches, optimize packet processing pipelines, and engage with maintainers. Practical tasks involve troubleshooting performance regressions, analyzing VPP graphs, and contributing documentation improvements.
Typology: Exams
1 / 93
This page cannot be seen from the preview
Don't miss anything!






















































































Question 1. Which component of VPP is responsible for providing the vector‑based packet processing engine? A) VPPINFRA B) VLIB C) VNET D) Bihash Answer: B Explanation: VLIB (Vector Processing Library) implements the core vector‑based data‑plane processing that enables VPP to handle packets in batches for high performance. Question 2. In VPP, what is the purpose of Huge Pages? A) To store configuration files B) To allocate large contiguous memory blocks for packet buffers, reducing TLB misses C) To enable multi‑threading D) To provide a user‑space filesystem Answer: B Explanation: Huge Pages allocate large contiguous memory regions, which improve packet buffer handling by reducing page‑table lookups and TLB misses, thereby boosting throughput. Question 3. Which of the following is NOT a supported platform for VPP? A) x B) ARM C) MIPS D) Power
Answer: C Explanation: VPP officially supports x86, ARM, and Power architectures; MIPS is not listed among the primary supported platforms. Question 4. The directed graph architecture in VPP is primarily used to: A) Manage user authentication B) Define the order in which packet processing nodes execute C) Store routing tables D) Allocate CPU cores Answer: B Explanation: VPP’s packet processing is modeled as a directed node graph where each node represents a processing step; packets traverse the graph according to the defined arcs. Question 5. Which VPP command creates a new TAP interface named “tap0”? A) set interface tap tap0 enable B) create interface tap tap C) create interface tap name tap D) set interface state tap0 up Answer: C Explanation: The CLI syntax create interface tap name <name> creates a TAP interface; the other options are incorrect or incomplete. Question 6. In the VPP build system, which make target compiles the entire source tree? A) make install B) make all
Question 9. When adding a new feature arc in VPP, you must register the arc with: A) vnet_register_feature_arc() B) vlib_register_node() C) vnet_feature_enable_disable() D) vlib_cli_output() Answer: A Explanation: vnet_register_feature_arc() registers a new feature arc, allowing plugins to attach processing nodes to that arc. Question 10. Which command displays the current CPU core allocation for VPP worker threads? A) show cpu B) show threads C) show version D) show memory Answer: B Explanation: show threads lists VPP worker threads and the CPU cores they are bound to. Question 11. In VPP, the “handoff queue” is used primarily for: A) Offloading packets to a DPDK NIC B) Communicating packets between a plugin and the main graph thread safely C) Storing NAT translation entries D) Managing VLAN tags Answer: B
Explanation: The handoff queue provides a lock‑free mechanism for plugins to enqueue packets to the main graph for further processing. Question 12. Which of the following is a correct way to enable IP forwarding on a VPP interface “GigabitEthernet0/8/0”? A) set int state GigabitEthernet0/8/0 up B) set int ip address GigabitEthernet0/8/0 10.0.0.1/ C) set int ip forward GigabitEthernet0/8/0 enable D) set int ip6 enable GigabitEthernet0/8/ Answer: C Explanation: set int ip forward <interface> enable turns on IP forwarding for that interface. Question 13. The VPP API language (VAPIL) is used to: A) Write kernel modules B) Define API messages and their serialization format C) Configure hardware offload engines D) Generate HTML documentation Answer: B Explanation: VAPIL describes the structure of API messages, enabling automatic generation of client bindings and server handlers. Question 14. Which of the following language bindings is NOT officially supported for the VPP API? A) Go (govpp) B) Rust (vpp‑rust)
Question 17. Which VPP CLI command displays the current NAT44 translation entries? A) show nat44 sessions B) show ip nat44 translations C) show nat44 static mappings D) show ip6 nat64 bindings Answer: A Explanation: show nat44 sessions lists active NAT44 translation sessions. Question 18. The “VPPINFRA” module primarily provides: A) Packet I/O drivers B) Core infrastructure such as memory pools, logging, and thread management C) IPv6 routing protocols D) User‑space TCP stack Answer: B Explanation: VPPINFRA contains foundational services like memory management, logging, and thread handling that support the rest of VPP. Question 19. Which of the following is the correct syntax to enable a DPDK‑based interface “dpdk0”? A) set interface dpdk0 up B) create interface dpdk name dpdk C) set interface state dpdk0 up D) enable interface dpdk
Answer: C Explanation: set interface state <name> up activates a DPDK interface after it has been created. Question 20. In the VPP directed graph, a node that performs packet classification based on N‑tuple fields is called: A) classifier-node B) acl-node C) flow‑probe-node D) ip‑lookup-node Answer: A Explanation: The classifier-node implements N‑tuple classification, matching packets against configured tables. Question 21. Which VPP feature provides load balancing across multiple backend servers? A) l2‑bridge B) ip‑lb C) nat44‑ed D) ip‑sec Answer: B Explanation: The ip‑lb (IP load balancer) plugin distributes traffic among a set of back‑ends using hash‑based selection. Question 22. When contributing a patch to VPP, which mailing list is used for code review? A) [email protected]
Question 25. Which VPP plugin implements IPSec tunnel termination? A) ipsec‑plugin B) ip‑sec‑gw C) crypto‑ipsec D) ipsec‑gw Answer: D Explanation: The ipsec‑gw plugin provides IPSec tunnel termination and IKEv2 handling. Question 26. What is the default number of VPP worker threads on a system with 8 CPU cores if no configuration is supplied? A) 1 B) 2 C) 4 D) 8 Answer: C Explanation: VPP auto‑detects half the available cores for workers, defaulting to 4 workers on an 8 ‑core machine. Question 27. The “IP adjacency” structure in VPP is used for: A) Storing ARP/ND entries for next‑hop resolution B) Managing VLAN tagging C) Defining MPLS label stacks D) Configuring BGP neighbors Answer: A
Explanation: IP adjacency objects hold next‑hop information such as MAC addresses (ARP/ND) for efficient forwarding. Question 28. Which of the following is the correct way to enable BFD (Bidirectional Forwarding Detection) on an interface “GigabitEthernet0/6/0”? A) set bfd enable GigabitEthernet0/6/ B) set interface bfd GigabitEthernet0/6/0 enable C) set bfd interface GigabitEthernet0/6/0 enable D) set bfd session create interface GigabitEthernet0/6/ Answer: C Explanation: set bfd interface <if> enable activates BFD monitoring on the specified interface. Question 29. When building VPP on macOS for cross‑compilation, which toolchain is typically used? A) clang‑cross‑x86_ B) gcc‑arm‑none‑eabi C) llvm‑cross‑toolchain with CMake D) xcodebuild with SDK “vpp” Answer: C Explanation: macOS cross‑compilation for VPP uses the LLVM/Clang toolchain via CMake to target Linux platforms. Question 30. The “show trace” command in VPP is used to: A) Display kernel logs B) Show a recorded packet trace from the data‑plane graph
Question 33. Which of the following commands disables a feature on a specific interface? A) set interface feature set interface feature <interface> disable <feature> disables a feature arc on the given interface. Question 34. The “vppctl” executable is: A) The VPP daemon process B) The command‑line client used to interact with the VPP API and CLI C) A wrapper for systemd services D) The compiler for VPP plugins Answer: B Explanation: vppctl connects to the VPP API socket, allowing users to issue CLI commands and query the data plane. Question 35. Which VPP plugin implements a classic IPv4 NAT “home gateway” with stateful translation? A) nat44‑ed B) nat44‑static C) nat64‑gateway D) nat46‑map
Answer: A Explanation: nat44‑ed (NAT44 endpoint‑dependent) provides stateful IPv4 NAT suitable for home‑gateway scenarios. Question 36. In the VPP source tree, the directory src/vnet contains: A) Device drivers for NICs B) The core network stack implementation (IP, ARP, etc.) C) Test harnesses for unit testing D) Documentation files Answer: B Explanation: src/vnet houses the VPP network stack components such as IP handling, routing, and adjacency management. Question 37. Which VPP API call is used to create a new physical interface? A) create_interface B) sw_interface_add_del C) interface_create D) vnet_interface_add Answer: B Explanation: sw_interface_add_del is the VPP API message that adds or deletes a software interface. Question 38. The “vpp‑debug” binary is primarily used for: A) Running VPP in a container B) Generating API documentation
Explanation: memif uses shared memory between processes, bypassing the kernel network stack and delivering higher packet rates. Question 41. The “show version” command in VPP displays: A) The kernel version of the host OS B) The VPP release version, build date, and compile options C) The version of all loaded plugins D) The API version used by clients Answer: B Explanation: show version reports the VPP binary version, build timestamp, and configuration flags. Question 42. In VPP, the “policy‑based routing” (PBR) feature is implemented via: A) ACLs attached to interfaces B) Classification tables that select a different FIB based on packet attributes C) Static routes with higher priority D) BGP communities Answer: B Explanation: PBR uses classifier tables to direct packets to alternate FIBs, allowing routing decisions based on more than just destination IP. Question 43. Which VPP command disables IPv6 processing globally? A) set ip6 disable B) set ip6 global disable C) set ip6 neighbor discovery disable
D) set ip6 forwarding disable Answer: A Explanation: set ip6 disable turns off all IPv6 processing across the dataplane. Question 44. The “vpp‑trace” tool is used to: A) Capture raw packets from the data plane B) Record the exact sequence of node executions for a packet batch C) Trace system calls made by VPP D) Generate a call graph of VPP plugins Answer: B Explanation: vpp‑trace enables packet tracing inside the VPP graph, recording node visits and packet metadata. Question 45. Which of the following is the correct syntax to add a static IPv4 route via next‑hop 192.168.1.1 for destination 10.0.0.0/24? A) ip route add 10.0.0.0/24 via 192.168.1. B) set ip route add 10.0.0.0/24 via 192.168.1. C) ip route add 10.0.0.0/24 via 192.168.1.1 vrf 0 D) set ip route 10.0.0.0/24 via 192.168.1. Answer: B Explanation: set ip route add <dst>/<len> via <next-hop> is the VPP CLI syntax for static routes. Question 46. In VPP, the “l2‑learn” plugin provides: A) Automatic learning of MAC addresses on bridge domains
Explanation: gdb - p <pid> attaches GDB to the live VPP process; obtaining the PID via pidof vpp is common. Question 49. The “show interface address” command in VPP displays: A) Only IPv4 addresses assigned to interfaces B) Both IPv4 and IPv6 addresses with their prefix lengths C) MAC addresses of interfaces D) Interface MTU values Answer: B Explanation: show interface address lists all assigned IP addresses (IPv4 and IPv6) along with their prefixes. Question 50. Which VPP plugin implements a Bit Index Explicit Replication (BIER) multicast mechanism? A) ip‑multicast B) bier‑plugin C) mcast‑sr D) bfd‑multicast Answer: B Explanation: The bier‑plugin provides BIER support for efficient multicast distribution. Question 51. In the VPP build system, which environment variable specifies the location of the DPDK SDK? A) DPDK_HOME B) RTE_SDK
Answer: B Explanation: RTE_SDK points to the root of the DPDK source tree, allowing VPP to locate DPDK headers and libraries. Question 52. Which command enables LACP (Link Aggregation Control Protocol) on two interfaces “GigabitEthernet0/0/0” and “GigabitEthernet0/0/1”? A) set interface bond create lag0 members GigabitEthernet0/0/0,GigabitEthernet0/0/1 lacp on B) create bond interface lag0 member GigabitEthernet0/0/0 GigabitEthernet0/0/1 mode lacp C) set interface bond lag0 add GigabitEthernet0/0/0 GigabitEthernet0/0/1 lacp enable D) set interface bond create lag0 members GigabitEthernet0/0/0,GigabitEthernet0/0/1 mode lacp Answer: D Explanation: set interface bond create <bond-name> members <if1>,<if2> mode lacp creates an LACP bond with the specified members. Question 53. When configuring a MAP‑E (Mapping of Address and Port – E) terminator in VPP, which plugin is primarily used? A) nat64‑plugin B) map‑e‑terminator C) lw46‑plugin D) map‑e‑gateway Answer: C