FD io Contributor 2022 Practice Exam, Exams of Technology

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

2025/2026

Available from 01/11/2026

shilpi-jain-1
shilpi-jain-1 🇮🇳

4.2

(5)

29K documents

1 / 93

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
FD io Contributor 2022 Practice Exam
**Question 1.** Which component of VPP is responsible for providing the vectorbased packet
processing engine?
A) VPPINFRA
B) VLIB
C) VNET
D) Bihash
Answer: B
Explanation: VLIB (Vector Processing Library) implements the core vectorbased dataplane
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 multithreading
D) To provide a userspace filesystem
Answer: B
Explanation: Huge Pages allocate large contiguous memory regions, which improve packet
buffer handling by reducing pagetable lookups and TLB misses, thereby boosting throughput.
**Question 3.** Which of the following is NOT a supported platform for VPP?
A) x86
B) ARM
C) MIPS
D) Power
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d

Partial preview of the text

Download FD io Contributor 2022 Practice Exam and more Exams Technology in PDF only on Docsity!

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 disable B) set interface feature disable C) set interface feature off D) set interface disable feature Answer: A Explanation: The syntax 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

C) DPDK_PATH

D) VPP_DPDK

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