
















































































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
This practice exam tests foundational knowledge of the OpenDaylight SDN controller, YANG models, MD-SAL architecture, southbound protocols (NETCONF, OpenFlow, BGP-LS), and project modularity. Candidates demonstrate ability to contribute code, write documentation, submit patches, and participate in design discussions. Hands-on tasks include implementing model-driven features, debugging controller behavior, and improving CI coverage.
Typology: Exams
1 / 88
This page cannot be seen from the preview
Don't miss anything!

















































































Question 1. What is the primary purpose of the OpenDaylight MD‑SAL? A) To provide a graphical UI for network operators B) To store network device firmware images C) To act as the data broker and service abstraction layer D) To replace the Linux kernel networking stack Answer: C Explanation: The MD‑SAL (Model‑Driven Service Abstraction Layer) is the core component that brokers data between applications and the underlying network devices, exposing a uniform API based on YANG models. Question 2. In the ODL architecture, which interface is responsible for communicating with physical switches using OpenFlow? A) Northbound Interface B) Southbound Interface C) Eastbound Interface D) Westbound Interface Answer: B Explanation: The Southbound Interface contains protocol plugins such as the OpenFlow plugin that translate controller intents into device‑specific messages. Question 3. Which OSGi runtime does OpenDaylight use to host its bundles? A) Equinox B) Apache Felix C) Apache Karaf D) Jetty Answer: C
Explanation: OpenDaylight runs inside Apache Karaf, an OSGi container that provides lifecycle management for bundles and feature installation. Question 4. What is the difference between the Config Datastore and the Operational Datastore in MD‑SAL? A) Config stores read‑only data, Operational stores writable data B) Config holds intended state, Operational reflects actual state of the network C) Config is used only by northbound apps, Operational only by southbound plugins D) Config is persistent on disk, Operational is kept in memory only Answer: B Explanation: The Config Datastore represents the desired configuration (intended state), while the Operational Datastore contains the real‑time state reported by devices. Question 5. Which YANG statement is used to add new nodes to an existing container defined in another module? A) import B) include C) augment D) deviation Answer: C Explanation: The augment statement extends an existing data tree by inserting additional nodes defined elsewhere. Question 6. In Maven, which parent POM is commonly used for building OpenDaylight projects? A) spring-boot-starter-parent B) odlparent-pom C) odlparent
Answer: A Explanation: RESTCONF is a REST‑like API that transports YANG‑modeled data encoded as JSON or XML over HTTP. Question 10. Which of the following is a mandatory component of a YANG leaf? A) type B) config C) default D) status Answer: A Explanation: Every leaf statement must define a type that specifies the data type of the leaf’s value. Question 11. In the ODL Karaf console, which command installs a feature from a Maven repository? A) feature:install feature:install loads the feature definition and all required bundles into the container. Question 12. Which ODL plugin is responsible for managing virtual bridges on Open vSwitch?
A) OpenFlow Plugin B) OVSDB Plugin C) BGP‑LS Plugin D) PCEP Plugin Answer: B Explanation: The OVSDB (Open vSwitch Database) plugin communicates with OVS instances to create, delete, and configure virtual bridges. Question 13. What is the purpose of a ‘must’ statement in a YANG model? A) To provide a default value for a leaf B) To enforce a constraint that must always be satisfied C) To indicate the leaf is read‑only D) To import another module Answer: B Explanation: The must statement defines XPath‑based constraints that the configuration must satisfy, otherwise the server rejects the edit. Question 14. Which Java package provides the MD‑SAL data broker interface? A) org.opendaylight.controller.sal.core.api.data B) org.opendaylight.mdsal.binding.api C) org.opendaylight.controller.md.sal.binding.api.DataBroker D) org.opendaylight.controller.sal.binding.api.DataBroker Answer: C Explanation: org.opendaylight.controller.md.sal.binding.api.DataBroker is the primary interface for reading and writing to the MD‑SAL datastores.
Question 18. Which Maven phase is responsible for compiling Java sources in an ODL project? A) validate B) compile C) package D) install Answer: B Explanation: The compile phase runs the Java compiler to produce .class files from source code. Question 19. In MD‑SAL, which type of listener receives notifications when data in the datastore changes? A) RPC Listener B) Data Change Listener C) Event Listener D) Notification Listener Answer: B Explanation: A Data Change Listener is registered with the DataBroker to be invoked on create, update, or delete operations in a specific subtree. Question 20. Which YANG construct allows grouping reusable definitions? A) container B) leaf‑list C) grouping D) augment Answer: C
Explanation: The grouping statement defines a reusable set of schema nodes that can be instantiated with the uses statement. Question 21. What does the “TSC” stand for in OpenDaylight governance? A) Technical Steering Committee B) Topology Service Controller C) Test Suite Coordinator D) Transport Security Council Answer: A Explanation: The Technical Steering Committee guides project direction, approves releases, and oversees community processes. Question 22. Which of the following is a best practice for writing immutable objects in ODL? A) Use public mutable fields B) Provide setter methods for all attributes C) Declare fields as final and set them only via constructor D) Store state in static variables Answer: C Explanation: Immutable objects should have final fields set in the constructor, preventing modification after creation and ensuring thread safety. Question 23. In the context of ODL’s Southbound plugins, what does “meter” refer to? A) A device that measures latency B) A flow table entry that applies rate‑limiting C) A logging utility for performance metrics D) A BGP attribute for route quality
D) list:bundles Answer: A Explanation: bundle:list displays the status, ID, and symbolic name of each OSGi bundle currently installed. Question 27. In ODL, what is the typical file extension for a YANG model? A) .yangxml B) .yml C) .yang D) .yng Answer: C Explanation: YANG models are stored in plain‑text files with the .yang extension. Question 28. Which of the following is NOT a valid YANG leaf type? A) uint B) string C) binary D) list Answer: D Explanation: list is a complex data node, not a leaf type. Leaves may be scalar types such as uint32, string, or binary. Question 29. What does the when statement in YANG accomplish? A) It defines a default value for a leaf B) It makes a node conditional on another node’s value C) It imports a module only if a condition is met D) It creates a mandatory leaf
Answer: B Explanation: when attaches a boolean XPath expression to a node, making the node present only when the condition evaluates to true. Question 30. Which testing framework is commonly used for unit testing ODL MD‑SAL services? A) TestNG B) JUnit with Mockito C) Spock D) Cucumber Answer: B Explanation: ODL developers typically write JUnit tests and use Mockito to mock MD‑SAL services like DataBroker and RPC services. Question 31. In OpenDaylight, what is the purpose of the “CSIT” test suite? A) Continuous Security Integration Tests B) Component System Integration Tests C) Controller System Integration Tests (full‑stack) D) Code Style Integration Tests Answer: C Explanation: CSIT (Controller System Integration Tests) runs end‑to‑end scenarios that involve multiple ODL components and external devices. Question 32. Which YANG statement is used to restrict a leaf to a set of enumerated values? A) type enumeration B) leafref
C) Layered Service D) Logical Switch Answer: A Explanation: BGP‑LS (Link State) distributes network topology information using BGP. Question 36. Which of the following is a recommended practice when writing commit messages for ODL patches? A) Use all caps for the subject line B) Include a “Signed‑off‑by” line with your name and email C) Omit the description body to keep it short D) Prefix the subject with “FIX:” only for bug fixes Answer: B Explanation: ODL follows the Developer’s Certificate of Origin, requiring a “Signed‑off‑by” line in each commit. Question 37. Which Java concurrency utility is preferred for executing non‑blocking tasks in MD‑SAL? A) java.util.concurrent.ThreadPoolExecutor directly B) CompletableFuture with asynchronous callbacks C) synchronized blocks on shared objects D) java.util.TimerTask Answer: B Explanation: CompletableFuture enables non‑blocking, asynchronous processing, aligning with MD‑SAL’s event‑driven model. Question 38. What does the leafref type in YANG allow a leaf to do? A) Reference another leaf’s value elsewhere in the data tree
B) Store binary data C) Define a list of strings D) Enforce a mandatory constraint Answer: A Explanation: leafref creates a reference to another leaf node, enabling reuse of existing values without duplication. Question 39. Which ODL feature provides a REST API for interacting with the Config Datastore? A) MD‑SAL REST Plugin B) RESTCONF Feature C) NETCONF Over HTTP Feature D) Northbound HTTP Bridge Answer: B Explanation: The RESTCONF feature exposes HTTP endpoints that map directly to the Config and Operational datastores. Question 40. In ODL’s Git workflow, which command pushes a local branch to Gerrit for review? A) git push origin refs/for/<branch> namespace; pushing to it creates a review change.
Explanation: The NotificationService obtained from the MD‑SAL provides registerListener to receive YANG‑modeled notifications. Question 44. In the ODL project lifecycle, what does “Incubation” indicate? A) The project is stable and has a long‑term support guarantee B) The project is experimental and may change APIs frequently C) The project is deprecated and scheduled for removal D) The project is a commercial offering Answer: B Explanation: Incubation status means the project is still evolving; APIs and features may not be stable. Question 45. Which command is used to generate HTML documentation from reStructuredText sources in ODL? A) make html B) sphinx-build - b html source build/html C) rst2html.py source.rst output.html D) docgen build html Answer: B Explanation: sphinx-build - b html processes RST files into HTML documentation, the standard ODL doc generation workflow. Question 46. What is the purpose of a “feature” in Apache Karaf? A) To define a Maven dependency B) To bundle a set of OSGi bundles and configuration for easy installation C) To represent a Git branch D) To configure logging levels
Answer: B Explanation: A Karaf feature is a descriptor that lists bundles, configuration files, and other resources needed for a functional component. Question 47. In YANG, which statement is used to limit the length of a string leaf? A) range "0..255" B) length "1..64" C) size "1..64" D) max-elements 64 Answer: B Explanation: The length statement restricts the number of characters a string may contain. Question 48. Which of the following best describes the role of the “southbound” plugins in ODL? A) They provide a UI for end users B) They translate controller intents into device‑specific protocol messages C) They store configuration files on disk D) They generate YANG models automatically Answer: B Explanation: Southbound plugins implement protocols (e.g., OpenFlow, NETCONF) to communicate with network devices. Question 49. Which Java annotation is used to mark a method as a JUnit 5 test case? A) @Test B) @JUnitTest C) @TestCase D) @UnitTest
Answer: A Explanation: rpc declares an operation that a client can invoke, with input and output data structures. Question 53. Which ODL component is responsible for translating YANG models into Java binding classes? A) MD‑SAL Core B) YANG Tools C) Karaf Runtime D) BGP‑LS Plugin Answer: B Explanation: YANG Tools includes the code generator that produces Java binding classes from YANG modules. Question 54. In the context of ODL, what does the abbreviation “SB” stand for? A) Service Bus B) Southbound C) Session Builder D) System Bridge Answer: B Explanation: “SB” denotes the Southbound Interface that communicates with network devices. Question 55. Which of the following is a valid way to define a mandatory list entry in YANG? A) list users { key "name"; mandatory true; } B) list users { key "name"; min-elements 1; } C) list users { key "name"; config false; }
D) list users { key "name"; presence true; } Answer: B Explanation: min-elements 1 ensures at least one entry exists, making the list effectively mandatory. Question 56. Which Maven scope should be used for dependencies that are only needed at compile time and not packaged in the final ODL artifact? A) provided B) runtime C) test D) compile Answer: A Explanation: provided scope indicates the dependency will be supplied by the runtime environment (e.g., Karaf) and should not be bundled. Question 57. In ODL, which service is used to invoke an RPC defined in a YANG model? A) RpcProviderRegistry B) RpcService C) RpcInvocationService D) RpcConsumerRegistry Answer: D Explanation: RpcConsumerRegistry allows an application to obtain a proxy for invoking a YANG‑defined RPC. Question 58. Which of the following statements about the when and must constraints in YANG is true? A) when is evaluated on the server, must on the client