Restconf - RESTful Configuration Protocol ========================================= .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is RESTCONF?** RESTCONF is a protocol defined by the IETF that provides a RESTful interface for accessing data defined in YANG, using standard HTTP methods. It allows network configuration and state data retrieval using simple web-based APIs. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is RESTCONF useful?** RESTCONF is useful because it simplifies network management by allowing automation tools and applications to interact with network devices through standard web protocols, such as HTTP and JSON or XML, making it developer-friendly and easy to integrate. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** RESTCONF uses HTTP methods (GET, POST, PUT, PATCH, DELETE) to operate on YANG-modeled data. Clients send requests over HTTP or HTTPS to retrieve or modify configuration or operational state from a RESTCONF-enabled server (e.g., a network device). .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is RESTCONF used?** RESTCONF is used in modern network management systems, SDN controllers, and automation frameworks (like Ansible, Cisco NSO, etc.) for controlling routers, switches, and other programmable devices. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** RESTCONF operates at the **Application Layer (Layer 7)** of the OSI model. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is RESTCONF Windows specific?** No, RESTCONF is not Windows specific. Clients and servers can run on any OS that supports HTTP and REST APIs. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is RESTCONF Linux specific?** No, RESTCONF is not Linux specific, although many implementations and tools are commonly used on Linux systems in network automation environments. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Transport Protocol is used by RESTCONF?** RESTCONF uses **HTTP or HTTPS** as its transport protocol, with HTTPS preferred for secure communication. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Port is used by RESTCONF?** RESTCONF typically uses **TCP port 443** for HTTPS and **port 80** for HTTP. However, actual port usage may vary based on server configuration. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is RESTCONF using client-server model?** Yes, RESTCONF uses a **client-server model**, where the **client** (such as a script, application, or automation tool) sends HTTP requests to the **server** (a network device or controller) that responds with configuration or state data. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`Restconf Version&IEEE Details ` * :ref:`Restconf Basic Setup on Ubuntu using IPv4 ` * :ref:`Restconf Basic Setup on Ubuntu using IPv6 ` * :ref:`Restconf Protocol Packet Details ` * :ref:`Restconf Usecases ` * :ref:`Restconf Basic Features ` * :ref:`Reference links ` .. _Restconf_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _Restconf_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _Restconf_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _Restconf_step5: .. tab-set:: .. tab-item:: Restconf Version&RFC Details * rfc details .. _Restconf_step18: .. tab-set:: .. tab-item:: Restconf Basic Setup on Ubuntu using IPv4 * setup .. _Restconf_step19: .. tab-set:: .. tab-item:: Restconf Basic Setup on Ubuntu using IPv6 * setup .. _Restconf_step6: .. tab-set:: .. tab-item:: Restconf Protocol Packet Details * packet details .. _Restconf_step7: .. tab-set:: .. tab-item:: Restconf Usecases * usecases .. _Restconf_step8: .. tab-set:: .. tab-item:: Restconf Basic Features * features .. _Restconf_step17: .. tab-set:: .. tab-item:: Reference links * Reference links