2 * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.common;
11 * Enumeration of NETCONF layers, as established in
12 * <a href="https://www.rfc-editor.org/rfc/rfc4741#section-1.1">NETCONF</a>. This enumeration exists because its
13 * semantics are implied by RFC6020 references to {@code error-tag} and its XML encoding.
16 * This enumeration corresponds to the {@code Layer} in:
18 * NETCONF can be conceptually partitioned into four layers:
21 * +-------------+ +-----------------------------+
22 * (4) | Content | | Configuration data |
23 * +-------------+ +-----------------------------+
25 * +-------------+ +-----------------------------+
26 * (3) | Operations | | <get-config>, <edit-config> |
27 * +-------------+ +-----------------------------+
29 * +-------------+ +-----------------------------+
30 * (2) | RPC | | <rpc>, <rpc-reply> |
31 * +-------------+ +-----------------------------+
33 * +-------------+ +-----------------------------+
34 * (1) | Transport | | BEEP, SSH, SSL, console |
36 * +-------------+ +-----------------------------+
38 * as acknowledged in <a href="https://www.rfc-editor.org/rfc/rfc6241#section-1.2">RFC6241</a>:
40 * The YANG data modeling language [RFC6020] has been developed for
41 * specifying NETCONF data models and protocol operations, covering the
42 * Operations and the Content layers of Figure 1.
45 public enum NetconfLayer {
47 * Content layer, for example configuration data. This layer is implied indirectly in all YANG-based validation and
48 * corresponds to {@link ErrorType#APPLICATION}
52 * Operations layer, for example {@code <get-config>}, {@code <edit-config>} configuration data. This corresponds to
53 * {@link ErrorType#PROTOCOL}.
57 * RPC layer, for example {@code <rpc>}, {@code <rpc-reply>}. This corresponds to {@link ErrorType#RPC}.
61 * Transport protocol layer, for example BEEP, SSH, TLS, console. This corresponds to {@link ErrorType#TRANSPORT}.