Efficient XML Interchange Capability for NETCONF draftvarganetconfexicapability00 NETCONF
Efficient XML Interchange Capability for NETCONF draft-varga-netconf-exi-capability-00 NETCONF WG, IETF 87 Berlin Robert Varga Pantheon Technologies 1
Introduction • NETCONF is a candidate protocol for I 2 RS – High transaction rate is expected – Concerns over XML encoding efficiency • Goals: – Define a binary message encoding based on EXI – Completely optional, backwards compatible – No impact on other protocol aspects 2
What is Efficient XML Interchange? • Binary encoding of XML Information Set • W 3 C Recommendation • Two basic modes of operation – Schema-less – Schema-informed • Tunable information packing • Tunable loss of non-essential information 3
Performance prototype • Existing commercial NETCONF implementation • Hard-wired to support EXI using exip – Schema-informed tests using cut-down netconf. xsd from RFC 6421 • Transport modified to UNIX-domain sockets • Measure on-wire message sizes • Measure operation latency – Request encode/decode – Operation execution – Response encode/decode 4
Message sizes 700 600 500 400 EXI w schema EXI w/o schema 300 XML 200 100 0 rpc-reply lock [B] rpc-reply unlock [B] rpc-reply edit-config [B] rpc-reply get-config [B] rpc-reply close-session [B] 5
No-data operation latency lock unlock 12 8 7 10 6 8 5 6 4 3 4 2 2 1 0 0 EXI w schema EXI w/o schema XML 6
Data operation latency get-config edit-config 14 1200 12 1000 10 800 8 600 6 400 4 200 2 0 0 EXI w schema EXI w/o schema XML 7
Improvements Message size Latency 14 15 14 12 13 10 12 8 lock 11 6 EXI w schema unlock 10 edit-config EXI w/o schema get-config 9 4 close-session 8 2 7 rp rp c- c re pl y r rp pc cre pl y rp rpc cre pl y r rp pc cre pl y 0 lock [B] unlock [B] edit-configget-config [B] close-session [B] 6 5 EXI w schema EXI w/o schema 8
Current state • Basic capability advertising support • Two new operations to enable/disable EXI encoding • Supports schema-less and fixed-schema operation • No existing implementation (yet) 9
Next steps • Improve document with implementation guidelines • Develop an implementation – Patch to libnetconf – Open. Daylight NETCONF plugin (? ) • Optional dynamic schema capability – Client/server schema interchange – May be unavailable in constrained environments 10
Q&A 11
Thank you 12
- Slides: 12