An engineer uses ncclient's manager.connect() against an IOS XE router to set the description 'uplink-to-campus' on GigabitEthernet1/0/1. The change must take effect on the live configuration in a single call, and ncclient must generate the RPC wrapper and message identifier so replies can be matched. Which XML structure should be passed to the edit_config() call?
Select an answer to reveal the explanation.
Short Explanation
NETCONF wants the change itself inside a <config> element, so the wrapper is what marks your XML as configuration. Your library builds the <rpc> envelope and message-id for you, so adding your own just confuses the router. Send it at <running/> and the description lands right away.
Full Explanation
NETCONF edit-config expects the requested content rooted in a config element, and that wrapper is what tells the device the XML is configuration rather than RPC metadata, while the target decides where the change lands, so running applies the description to the live configuration in one call. Passing just the interface subtree with no wrapper fails because RFC 6241 requires a config element inside edit-config, so the router rejects the RPC as malformed before touching anything. Hand-writing the rpc element duplicates the envelope ncclient already generates, including the message identifier it uses to match replies, and the router refuses the nested structure. Sending the same content through validate only reports whether the device would accept it, so nothing is stored and the description never appears. Exam caveat: IOS XE models vary in the namespaces and extra containers inside an interface subtree, so capture a real get-config response before you build the payload. Practical check: run a get-config query afterwards and confirm the description shows on the interface.