

















































































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 exam simulates contributing to the OpenDaylight (ODL) SDN controller project in 2022. Tasks include building ODL components, working with OSGi modules, creating YANG models, editing southbound/northbound plugin code, testing controller functionalities, improving documentation, and participating in project reviews. Candidates also practice cross-project collaboration and following LFN contribution guidelines.
Typology: Exams
1 / 89
This page cannot be seen from the preview
Don't miss anything!


















































































Question 1. Which SDN principle separates the control logic from the forwarding hardware? A) Network Function Virtualization B) Control‑Plane/Data‑Plane separation C) Overlay networking D) Intent‑based networking Answer: B Explanation: SDN’s core tenet is to decouple the control plane (decision making) from the data plane (packet forwarding) to enable centralized management. Question 2. What protocol does OpenDaylight primarily use to program OpenFlow‑compatible switches? A) BGP‑LS B) NETCONF C) OpenFlow D) RESTCONF Answer: C Explanation: OpenDaylight includes an OpenFlow plugin that translates MD‑SAL operations into OpenFlow messages for switches. Question 3. In OpenDaylight, which layer provides northbound APIs for applications? A) Southbound Interface Layer B) Service Abstraction Layer (SAL) C) Application Layer (Northbound) D) Data Store Layer Answer: C
Explanation: The northbound layer hosts applications that consume MD‑SAL services via RESTCONF or other APIs. Question 4. Which OSGi component is responsible for managing bundles in OpenDaylight? A) Karaf container B) Maven C) Git D) Jenkins Answer: A Explanation: Apache Karaf provides the runtime environment for OSGi, handling bundle lifecycle and service registration. Question 5. What does MD‑SAL stand for in OpenDaylight? A) Model‑Driven Service Access Layer B) Model‑Driven Service Abstraction Layer C) Modular Data Service Access Layer D) Multi‑Domain Service Abstraction Logic Answer: B Explanation: MD‑SAL is the Model‑Driven Service Abstraction Layer, central to ODL’s architecture. Question 6. Which datastore holds the desired configuration state in MD‑SAL? A) Operational Datastore B) Config Datastore C) Runtime Datastore D) Transactional Datastore
C) Read‑Write Transaction D) Async Transaction Answer: C Explanation: A Read‑Write Transaction ensures all operations succeed or none are applied, providing atomicity. Question 10. What is the purpose of a Data Change Listener in MD‑SAL? A) To schedule periodic datastore backups B) To react to modifications in the datastore C) To encrypt datastore entries D) To generate YANG models automatically Answer: B Explanation: Data Change Listeners are registered to receive callbacks when specific data nodes are created, updated, or deleted. Question 11. Which broker handles DOM‑based (generic) service registration in MD‑SAL? A) Binding Broker B) RPC Broker C) Notification Broker D) DOM Broker Answer: D Explanation: The DOM Broker works with generic (untyped) data structures, allowing services to be registered without generated Java bindings. Question 12. In YANG, which statement defines a reusable collection of nodes? A) container
B) list C) grouping D) leafref Answer: C Explanation: A grouping allows modelers to define a set of nodes that can be reused via the “uses” statement. Question 13. Which YANG keyword is used to declare a list of entries with a key? A) leaf-list B) list C) container D) choice Answer: B Explanation: The “list” statement defines a repeatable set of nodes, and a “key” substatement identifies each entry uniquely. Question 14. How does YANG differentiate configuration data from operational data? A) Using “config true/false” statement B) By placing them in separate modules C) Through “type operational” keyword D) Using “status” attribute Answer: A Explanation: The “config” statement (default true) marks data as configuration; setting it to false indicates operational state.
Question 18. What is the purpose of the <edit-config> operation in NETCONF? A) To delete a device B) To modify or create configuration data C) To retrieve operational state D) To initiate a firmware upgrade Answer: B Explanation: <edit-config> allows a client to create, replace, or delete configuration data on a NETCONF device. Question 19. Which Maven command compiles an OpenDaylight project? A) mvn clean install B) mvn package deploy C) mvn compile test D) mvn start karaf Answer: A Explanation: “mvn clean install” cleans previous builds and compiles the project, running unit tests and installing artifacts to the local repository. Question 20. In Apache Karaf, which command lists all installed features? A) feature:list-installed B) feature:list C) feature:show D) bundle:list Answer: B
Explanation: “feature:list” displays all features, indicating which are installed, not‑installed, or available. Question 21. What does the OSGi term “bundle” refer to? A) A Java package B) A collection of OSGi components packaged as a JAR with metadata C) A Docker image D) A Maven module Answer: B Explanation: An OSGi bundle is a JAR file containing Java classes and OSGi headers that define its lifecycle and dependencies. Question 22. Which OSGi bundle state indicates the bundle is ready to be started but not yet active? A) INSTALLED B) RESOLVED C) STARTING D) ACTIVE Answer: B Explanation: RESOLVED means all required dependencies are satisfied; the bundle can be started. Question 23. In the OpenDaylight contribution workflow, where are patches reviewed? A) GitHub Pull Requests B) Gerrit C) Bitbucket
C) Only documentation updates are permitted D) New features are prioritized over bug fixes Answer: A Explanation: During feature freeze, the code base is locked for new features; only critical bug fixes and testing continue. Question 27. Which southbound protocol does the OpenDaylight Netconf Plugin use to communicate with devices? A) SSH‑based NETCONF B) HTTP/ C) gRPC D) SNMP Answer: A Explanation: The Netconf Plugin establishes an SSH session to exchange NETCONF XML RPCs with devices. Question 28. In OpenFlow, what does a flow entry’s “match” field specify? A) The action to be taken B. The table identifier C. The packet header fields to compare D. The priority of the flow Answer: C Explanation: The match field defines which packet header fields must match for the flow to be applied. Question 29. Which OpenFlow table is the default entry point for packets?
A) Table 0 B) Table 1 C) Table 254 D) Table 255 Answer: A Explanation: Table 0 is the first table processed for incoming packets unless otherwise configured. Question 30. What is the purpose of an OpenFlow “group” entry? A) To define a collection of flow tables B) To aggregate multiple actions for a single match C) To manage device authentication D) To store configuration snapshots Answer: B Explanation: Groups allow a single flow to trigger a set of actions (e.g., select, all, indirect) applied together. Question 31. Which YANG statement is used to reference an existing leaf’s value elsewhere in the model? A) leafref B) typedef C) augment D) identityref Answer: A Explanation: leafref creates a reference to another leaf’s value, enabling cross‑node relationships.
Explanation: Model‑Driven architecture generates Java bindings and REST endpoints directly from YANG, ensuring consistency. Question 35. Which component in ODL is responsible for translating MD‑SAL RPC calls to OpenFlow messages? A) MD‑SAL Core B) OpenFlow Plugin C) Netconf Connector D) RESTCONF Server Answer: B Explanation: The OpenFlow Plugin registers RPCs with MD‑SAL and converts them into OpenFlow protocol messages. Question 36. Which ODL feature provides a graphical representation of the network topology? A) BGP‑LS Plugin B) Topology UI (DLUX) C) NETCONF Client D) OVSDB Server Answer: B Explanation: DLUX (the ODL web UI) includes a topology view that visualizes devices and links. Question 37. What does the “binding” layer in MD‑SAL refer to? A) The XML schema definitions B) Generated Java classes from YANG models C) The REST endpoint definitions
D) The OSGi service registry Answer: B Explanation: The binding layer consists of type‑safe Java APIs automatically generated from YANG modules. Question 38. In ODL, which command installs a new feature from the Karaf console? A) feature:install <feature-name> B) bundle:install <feature-name> C) install:feature <feature-name> D) karaf:install <feature-name> Answer: A Explanation: “feature:install” is the Karaf command to add a feature (set of bundles) to the running container. Question 39. Which of the following is NOT a standard southbound protocol supported by OpenDaylight? A) OpenFlow B) BGP‑LS C) SNMP D) NETCONF Answer: C Explanation: While OpenDaylight can interact with SNMP via third‑party plugins, it is not a core southbound protocol like the others listed. Question 40. What is the role of the “notification” service in MD‑SAL? A) To schedule periodic data backups
A) JUnit B) TestNG C) PyTest D) Cucumber Answer: A Explanation: ODL uses JUnit for unit testing Java components, integrated with Maven’s test lifecycle. Question 44. What is the main purpose of the “feature freeze” milestone? A) To merge all pending features B) To stop adding new features and focus on stabilization C) To release the final product to customers D) To start documentation updates only Answer: B Explanation: Feature freeze marks the point where no new features are accepted; the focus shifts to bug fixing and testing. Question 45. Which component registers a southbound plugin with MD‑SAL? A) The Plugin Manager Service B) The OSGi Bundle Activator C) The RESTCONF Server D) The YANG Tools Generator Answer: B Explanation: In OSGi, a bundle’s Activator registers the plugin’s services with MD‑SAL during bundle start.
Question 46. Which YANG statement indicates that a leaf is read‑only and cannot be configured? A) config false B) mandatory true C) status deprecated D) type string Answer: A Explanation: Setting “config false” marks the leaf as operational (read‑only) data. Question 47. What does the “identity” statement in YANG provide? A) A base type for enumerations B) A way to define abstract types for future extensions C) A method to import external modules D) A rule for data validation Answer: B Explanation: “identity” defines a unique type that can be extended via “identityref,” supporting extensible enumerations. Question 48. In RESTCONF, how are hierarchical resources identified? A) By JSON pointers B) By XPath expressions C) By URI path segments following the YANG tree D. By query parameters only Answer: C Explanation: RESTCONF maps YANG data nodes to URI paths; each segment corresponds to a container, list, or leaf.
Explanation: “bundle:list - s” shows bundles with their state, allowing you to see which are ACTIVE. Question 52. In MD‑SAL, what does a “Read‑Only Transaction” allow? A. Writing data to the Config datastore B. Modifying operational data C. Reading data without affecting the datastore state D. Deleting configuration entries Answer: C Explanation: A Read‑Only Transaction provides a consistent snapshot for reading data, without permitting modifications. Question 53. Which YANG keyword is used to define a reusable type alias? A. typedef B. leafref C. identity D. augment Answer: A Explanation: “typedef” creates a new type name that can be referenced elsewhere, simplifying model definitions. Question 54. What is the purpose of the “augment” statement in a YANG module? A. To define a new top‑level container B. To add nodes to an existing data tree defined elsewhere C. To create a new RPC operation D. To declare a mandatory leaf
Answer: B Explanation: “augment” extends existing modules by inserting additional nodes into their hierarchy. Question 55. Which OpenDaylight component provides a REST API for accessing MD‑SAL data? A. RESTCONF Server B. OpenFlow Plugin C. BGP‑LS Service D. OVSDB Connector Answer: A Explanation: The RESTCONF Server exposes MD‑SAL datastores as RESTful resources. Question 56. Which of the following best describes a “binding aware” listener in MD‑SAL? A. Listens for raw DOM notifications only B. Receives typed Java objects generated from YANG models C. Monitors file system changes D. Handles low‑level socket events Answer: B Explanation: Binding aware listeners work with type‑safe Java objects (bindings) rather than generic DOM structures. Question 57. In the OpenDaylight release process, what is a “milestone”? A. A final production release B. An intermediate build used for testing new features C. A documentation update