Internet Engineering Task Force (IETF)                     B. Khasnabish
Request for Comments: 7729                                  ZTE TX, Inc.
Category: Standards Track                                  E. Haleplidis
ISSN: 2070-1721                                     University of Patras
                                                      J. Hadi Salim, Ed.
                                                       Mojatatu Networks
                                                           December 2015
        
Internet Engineering Task Force (IETF)                     B. Khasnabish
Request for Comments: 7729                                  ZTE TX, Inc.
Category: Standards Track                                  E. Haleplidis
ISSN: 2070-1721                                     University of Patras
                                                      J. Hadi Salim, Ed.
                                                       Mojatatu Networks
                                                           December 2015
        

Forwarding and Control Element Separation (ForCES) Logical Functional Block (LFB) Subsidiary Management

转发和控制元素分离(ForCES)逻辑功能块(LFB)辅助管理

Abstract

摘要

Deployment experience has demonstrated the value of using the Forwarding and Control Element Separation (ForCES) architecture to manage resources other than packet forwarding. In that spirit, the Forwarding Element Manager (FEM) is modeled by creating a Logical Functional Block (LFB) to represent its functionality. We refer to this LFB as the Subsidiary Mechanism (SM) LFB. A Control Element (CE) that controls a Forwarding Element's (FE) resources can also manage its configuration via the SM LFB. This document introduces the SM LFB class, an LFB class that specifies the configuration parameters of an FE. The configuration parameters include new LFB class loading and CE associations; they also provide manipulation of debug mechanisms along with a general purpose attribute definition to describe configuration information.

部署经验已经证明了使用转发和控制元素分离(ForCES)体系结构来管理数据包转发以外的资源的价值。本着这种精神,通过创建逻辑功能块(LFB)来表示其功能,从而对转发元素管理器(FEM)进行建模。我们将此LFB称为附属机制(SM)LFB。控制转发元素(FE)资源的控制元素(CE)也可以通过SM LFB管理其配置。本文档介绍SM LFB类,一个指定FE配置参数的LFB类。配置参数包括新的LFB类加载和CE关联;它们还提供调试机制的操作以及描述配置信息的通用属性定义。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7729.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc7729.

Copyright Notice

版权公告

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2015 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

Table of Contents

目录

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   5
     1.2.  Definitions . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .   6
     2.1.  High Availability . . . . . . . . . . . . . . . . . . . .   6
     2.2.  Scalability . . . . . . . . . . . . . . . . . . . . . . .   6
     2.3.  Adding New Resources to an NE . . . . . . . . . . . . . .   6
     2.4.  New LFB Class Installation  . . . . . . . . . . . . . . .   6
     2.5.  Logging Mechanism . . . . . . . . . . . . . . . . . . . .   7
     2.6.  General-Purpose Attribute Definition  . . . . . . . . . .   7
   3.  Applicability Statement . . . . . . . . . . . . . . . . . . .   8
     3.1.  FE Integrated . . . . . . . . . . . . . . . . . . . . . .   8
     3.2.  Virtual FEs . . . . . . . . . . . . . . . . . . . . . . .   8
   4.  SM Library  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     4.1.  Frame Definitions . . . . . . . . . . . . . . . . . . . .   8
     4.2.  Data Type Definitions . . . . . . . . . . . . . . . . . .   9
     4.3.  Metadata Definitions  . . . . . . . . . . . . . . . . . .   9
     4.4.  SM  . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
       4.4.1.  Data Handling . . . . . . . . . . . . . . . . . . . .  10
       4.4.2.  Components  . . . . . . . . . . . . . . . . . . . . .  10
       4.4.3.  Capabilities  . . . . . . . . . . . . . . . . . . . .  10
       4.4.4.  Events  . . . . . . . . . . . . . . . . . . . . . . .  11
   5.  XML for SM LFB  . . . . . . . . . . . . . . . . . . . . . . .  11
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  18
     7.1.  LFB Class Names and LFB Class Identifiers . . . . . . . .  18
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  18
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  19
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  20
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  20
        
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   5
     1.2.  Definitions . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . .   6
     2.1.  High Availability . . . . . . . . . . . . . . . . . . . .   6
     2.2.  Scalability . . . . . . . . . . . . . . . . . . . . . . .   6
     2.3.  Adding New Resources to an NE . . . . . . . . . . . . . .   6
     2.4.  New LFB Class Installation  . . . . . . . . . . . . . . .   6
     2.5.  Logging Mechanism . . . . . . . . . . . . . . . . . . . .   7
     2.6.  General-Purpose Attribute Definition  . . . . . . . . . .   7
   3.  Applicability Statement . . . . . . . . . . . . . . . . . . .   8
     3.1.  FE Integrated . . . . . . . . . . . . . . . . . . . . . .   8
     3.2.  Virtual FEs . . . . . . . . . . . . . . . . . . . . . . .   8
   4.  SM Library  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     4.1.  Frame Definitions . . . . . . . . . . . . . . . . . . . .   8
     4.2.  Data Type Definitions . . . . . . . . . . . . . . . . . .   9
     4.3.  Metadata Definitions  . . . . . . . . . . . . . . . . . .   9
     4.4.  SM  . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
       4.4.1.  Data Handling . . . . . . . . . . . . . . . . . . . .  10
       4.4.2.  Components  . . . . . . . . . . . . . . . . . . . . .  10
       4.4.3.  Capabilities  . . . . . . . . . . . . . . . . . . . .  10
       4.4.4.  Events  . . . . . . . . . . . . . . . . . . . . . . .  11
   5.  XML for SM LFB  . . . . . . . . . . . . . . . . . . . . . . .  11
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  18
     7.1.  LFB Class Names and LFB Class Identifiers . . . . . . . .  18
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  18
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  19
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  20
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  20
        
1. Introduction
1. 介绍

Deployment experience has demonstrated the value of using the Forwarding and Control Element Separation (ForCES) architecture to manage resources other than packet forwarding. In that spirit, the Forwarding Element Manager (FEM) is modeled by creating a Logical Functional Block (LFB) to represent its functionality. We refer to this LFB as the Subsidiary Mechanism (SM) LFB. A Control Element (CE) that controls a Forwarding Element's (FE) resources can also manage its configuration via the SM LFB. This document introduces the SM LFB class, an LFB that specifies the configuration parameters of an FE.

部署经验已经证明了使用转发和控制元素分离(ForCES)体系结构来管理数据包转发以外的资源的价值。本着这种精神,通过创建逻辑功能块(LFB)来表示其功能,从而对转发元素管理器(FEM)进行建模。我们将此LFB称为附属机制(SM)LFB。控制转发元素(FE)资源的控制元素(CE)也可以通过SM LFB管理其配置。本文档介绍SM LFB类,一个指定FE配置参数的LFB。

On a running FE, a CE application may update an FE's runtime configuration via the SM LFB instance.

在运行的FE上,CE应用程序可以通过SM LFB实例更新FE的运行时配置。

                              ForCES Network Element
                             +-------------------------------------+
                             |         +---------------------+     |
                             |         | Control Application |     |
                             |         +--+--------------+---+     |
                             |            |              |         |
                             |            |              |         |
      --------------   Fc    | -----------+--+      +-----+------+ |
      | CE Manager |---------+-|     CE 1    |------|    CE 2    | |
      --------------         | |             |  Fr  |            | |
            |                | +-+---------+-+      +------------+ |
            | Fl             |   |         | Fp        /           |
            |                |   |         +--------+ /            |
            |                |   | Fp               |/             |
            |                |   |                  |              |
            |                |   |         Fp      /|----+         |
            |                |   |       /--------/      |         |
      --------------     Ff  | ---+----------      --------------  |
      | FE Manager |---------+-|     FE 1   |  Fi  |     FE 2   |  |
      --------------         | |            |------|            |  |
                             | --------------      --------------  |
                             |   |  |  |  |          |  |  |  |    |
                             ----+--+--+--+----------+--+--+--+-----
                                 |  |  |  |          |  |  |  |
                                 |  |  |  |          |  |  |  |
                                   Fi/f                   Fi/f
          Fp: CE-FE interface
          Fr: CE-CE interface
          Fc: Interface between the CE Manager and a CE
          Ff: Interface between the FE Manager and an FE
          Fl: Interface between the CE Manager and the FE Manager
          Fi/f: FE external interface
        
                              ForCES Network Element
                             +-------------------------------------+
                             |         +---------------------+     |
                             |         | Control Application |     |
                             |         +--+--------------+---+     |
                             |            |              |         |
                             |            |              |         |
      --------------   Fc    | -----------+--+      +-----+------+ |
      | CE Manager |---------+-|     CE 1    |------|    CE 2    | |
      --------------         | |             |  Fr  |            | |
            |                | +-+---------+-+      +------------+ |
            | Fl             |   |         | Fp        /           |
            |                |   |         +--------+ /            |
            |                |   | Fp               |/             |
            |                |   |                  |              |
            |                |   |         Fp      /|----+         |
            |                |   |       /--------/      |         |
      --------------     Ff  | ---+----------      --------------  |
      | FE Manager |---------+-|     FE 1   |  Fi  |     FE 2   |  |
      --------------         | |            |------|            |  |
                             | --------------      --------------  |
                             |   |  |  |  |          |  |  |  |    |
                             ----+--+--+--+----------+--+--+--+-----
                                 |  |  |  |          |  |  |  |
                                 |  |  |  |          |  |  |  |
                                   Fi/f                   Fi/f
          Fp: CE-FE interface
          Fr: CE-CE interface
          Fc: Interface between the CE Manager and a CE
          Ff: Interface between the FE Manager and an FE
          Fl: Interface between the CE Manager and the FE Manager
          Fi/f: FE external interface
        

Figure 1: ForCES Architectural Diagram

图1:ForCES体系结构图

Figure 1 shows a control application manipulating, at runtime, FE configuration via the SM LFB control. It would appear that this control application is playing the part of the FE Manager and thus appears as the messaging for Ff (FEM to FE interface) going via the standard Fp plane. However, the SM LFB describes a subset of the operations that can be performed over Ff; it does not suggest moving away from the Ff interface.

图1显示了一个在运行时通过SM LFB控件操纵FE配置的控件应用程序。该控制应用程序似乎在扮演FE管理器的角色,因此显示为通过标准Fp平面传递的Ff(FEM到FE接口)消息。然而,SM-LFB描述了可在Ff上执行的操作的子集;它不建议离开Ff接口。

The SM LFB class describes the configuration parameters of an FE, namely the LFB classes it should load, the CEs it should be associated with, as well the respective CE IP addresses. Additionally, the SM LFB provides a general purpose attribute

SM LFB类描述FE的配置参数,即它应该加载的LFB类、它应该关联的CE以及相应的CE IP地址。此外,SM LFB还提供了一个通用属性

definition to describe configuration information, as well as the ability to manipulate the debug logging mechanism.

定义来描述配置信息,以及操作调试日志机制的能力。

This document assumes that FEs are already booted. The FE's configuration can then be updated at runtime via the SM LFB for runtime configuration purposes. This document does not specify or standardize the FEM-FE (Ff) interface as depicted in [RFC3746]. This document describes a mechanism with which a CE can instruct the SM for FE management using ForCES.

本文档假定FEs已启动。然后,FE的配置可以在运行时通过SM LFB进行更新,以进行运行时配置。本文件未规定或标准化[RFC3746]中描述的FEM-FE(Ff)接口。本文件描述了一种机制,CE可通过该机制指示SM使用武力进行FE管理。

This work item makes no assumption of whether FE resources are physical or virtual. In fact, the LFB library provided here is applicable to both. Thus, it can also be useful in addressing control of virtual FEs where individual FEMs can be addressed to control the creation, configuration, and resource assignment of such virtual FEs within a physical FE.

此工作项不假设FE资源是物理资源还是虚拟资源。事实上,这里提供的LFB库适用于这两种情况。因此,它还可用于虚拟FEs的寻址控制,其中单个fem可寻址以控制物理FE内此类虚拟FEs的创建、配置和资源分配。

1.1. Requirements Language
1.1. 需求语言

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

1.2. Definitions
1.2. 定义

This document follows the terminology defined by [RFC3654], [RFC3746], [RFC5810], and [RFC5812]. In particular, the reader is expected to be familiar with the following terms:

本文件遵循[RFC3654]、[RFC3746]、[RFC5810]和[RFC5812]定义的术语。读者应特别熟悉以下术语:

o Logical Functional Block (LFB)

o 逻辑功能块(LFB)

o Forwarding Element (FE)

o 转发元素(FE)

o Control Element (CE)

o 控制元件(CE)

o ForCES Network Element (NE)

o 部队网元(NE)

o FE Manager (FEM)

o FE经理(FEM)

o CE Manager

o CE管理器

o ForCES Protocol

o 部队协议

o ForCES Protocol Layer (ForCES PL)

o ForCES协议层(ForCES PL)

o ForCES Protocol Transport Mapping Layer (ForCES TML)

o ForCES协议传输映射层(ForCES TML)

2. Use Cases
2. 用例

In this section, we present sample use cases to illustrate the need and usefulness of the SM LFB.

在本节中,我们展示了示例用例来说明SM LFB的需求和用途。

All use cases assume that an FE is already booted up and tied to at least one CE. A control application can delete a CE from an FE's table of CEs, which instructs the FE to terminate the connection with that removed CE. Likewise, the control application via the master CE instructs an FE to establish a ForCES association with a new CE by adding a particular CE to the FE's CEs table.

所有用例都假设FE已经启动并绑定到至少一个CE。控制应用程序可以从FE的CE表中删除CE,这将指示FE终止与已删除CE的连接。同样,通过主CE的控制应用程序指示FE通过向FE的CEs表添加特定CE来建立与新CE的力关联。

2.1. High Availability
2.1. 高可用性

Assume an FE associated to only one CE. At runtime, a CE management application may request, for redundancy reasons, that an FE be associated to another CE as a backup. To achieve this goal, the CE management application specifies the Control Element ID (CEID) of the new backup CE (to be uniquely identified within the NE) and the CE's IP address (IPv4 or IPv6).

假设一个FE仅与一个CE关联。在运行时,CE管理应用程序可能出于冗余原因请求将FE关联到另一个CE作为备份。为实现此目标,CE管理应用程序指定新备份CE的控制元素ID(CEID)(在网元中唯一标识)和CE的IP地址(IPv4或IPv6)。

2.2. Scalability
2.2. 可伸缩性

Assume an NE cluster that has FEs connected to multiple CEs, possibly in an active backup setup. Assume that system analytics discover that the CE is becoming a bottleneck. A new CE could be booted and some FEs moved to it. To achieve this goal, the CE management application will first ask an FE to connect to a new CE and would then instruct that FE to change its master to the new CE as described in [RFC7121].

假设一个网元集群的FEs连接到多个CE,可能处于活动备份设置中。假设系统分析发现CE正在成为瓶颈。可以启动一个新的CE,并将一些FE移动到它。为了实现这一目标,CE管理应用程序将首先要求FE连接到新CE,然后指示FE将其主机更改为新CE,如[RFC7121]中所述。

2.3. Adding New Resources to an NE
2.3. 向网元添加新资源

Assume a resource pooling setup with multiple FEs belonging to a resource pool all connected to a dormant resource pool CE. An NE system manager by demand could move an FE from the resource pool to a working NE by asking it first to connect to a CE on the working NE and then asking it to disconnect from the resource pool manager CE.

假设一个资源池设置,其中多个FE属于一个资源池,所有FE都连接到一个休眠资源池CE。网元系统管理器通过请求将FE从资源池移动到工作网元,方法是首先请求FE连接到工作网元上的CE,然后请求FE断开与资源池管理器CE的连接。

2.4. New LFB Class Installation
2.4. 新LFB级安装

A CE can learn, via the DynamicLFBLoading capability of the SM LFB, whether an FE is capable of loading new LFB classes. Provided that the FE supports new LFB class loading, the CE can request a new LFB to be installed and supported by the FE.

CE可以通过SM LFB的动态加载功能了解FE是否能够加载新的LFB类。如果FE支持新的LFB类加载,CE可以请求FE安装并支持新的LFB。

To load an LFB class on an FE, the CE will have to provide the following parameters:

要在FE上加载LFB类,CE必须提供以下参数:

o LFB class - The LFB class ID

o LFB类-LFB类ID

o LFB version - The version of the LFB class

o LFB版本-LFB类的版本

o LFB class name - Optional, the LFB name

o LFB类名-可选,LFB名称

o Parameters - Optional parameters. These parameters are implementation specific. For example, in one implementation they may contain the path where the LFB class implementation resides.

o 参数-可选参数。这些参数是特定于实现的。例如,在一个实现中,它们可能包含LFB类实现所在的路径。

The parameters are fields that need to be described in documentation, depending on the implementation; one example is the location of the LFB class to be installed and/or mechanism to download it. The exact detail of the location semantics is implementation specific and out of scope of this document. However, this LFB library provides a placeholder, namely the SupportedParameters capability, which will host any standardized parameters.

参数是需要在文档中描述的字段,具体取决于实现;一个例子是要安装的LFB类的位置和/或下载它的机制。位置语义的确切细节是特定于实现的,不在本文档的范围内。但是,此LFB库提供了一个占位符,即SupportedParameters功能,它将承载任何标准化参数。

This document does not standardize these parameters. It is expected that some future document will perform that task. These parameters are placeholders for future use, in order not to redefine the LFB class versions each time. They are simple strings that define the parameters supported by the LFB. The CE is expected to read this capability in order to understand the parameters it can use.

本文件未对这些参数进行标准化。预计未来的某个文档将执行该任务。为了避免每次都重新定义LFB类版本,这些参数是供将来使用的占位符。它们是定义LFB支持的参数的简单字符串。CE应读取该功能,以了解其可使用的参数。

2.5. Logging Mechanism
2.5. 测井机理

The SM LFB class also provides a useful log-level manipulation. Experience has proven that the CE may be required to increase or decrease the debug levels of parts of the FE, whether that be LFBs, portions of LFBs, or generic processing code (all called "modules"). The module granularity is implementation specific and is not discussed in this document. The debug levels are derived from the "syslog Message Severities" registry <http://www.iana.org/assignments/syslog-parameters> defined in [RFC3164].

SM LFB类还提供了有用的日志级操作。经验证明,CE可能需要增加或减少FE部分的调试级别,无论是LFB、LFB部分还是通用处理代码(均称为“模块”)。模块粒度是特定于实现的,本文档中不讨论。调试级别源自“syslog消息严重性”注册表<http://www.iana.org/assignments/syslog-parameters>在[RFC3164]中定义。

2.6. General-Purpose Attribute Definition
2.6. 通用属性定义

Experience has shown that a generic attribute name-value pair is useful for describing configuration information. This LFB class defines such a generic attribute name-value pair defined as a table of attribute name-value pair values. The attribute name-value pair is implementation specific and at the moment there is nothing to standardize. As an example, consider switches that have exactly the

经验表明,通用属性名称-值对用于描述配置信息。这个LFB类定义了这样一个通用属性名-值对,定义为属性名-值对值表。属性名-值对是特定于实现的,目前还没有什么需要标准化的。作为一个例子,考虑具有恰好的

same LFB classes and capabilities but need to be used in different roles. A good example would be a switch that could be used either as Spine or Top-of-Rack (ToR) in data-center setups. An attribute that defines the role could be retrieved from the FE, which will then dictate how it is controlled and configured. However, as in the case of LFB class loading parameters, this LFB class library provides a placeholder, namely the SupportedArguments capability, which will host any standardized arguments. This document does not standardize these parameters. The CE is expected to read the SupportedArguments capability in order to know what attributes it can use.

相同的LFB类和功能,但需要在不同的角色中使用。一个很好的例子是一个交换机,它可以用作数据中心设置中的脊椎或机架顶部(ToR)。可以从FE检索定义角色的属性,该属性将指示如何控制和配置角色。但是,与LFB类加载参数一样,该LFB类库提供了一个占位符,即SupportedArguments功能,它将承载任何标准化参数。本文件未对这些参数进行标准化。CE需要读取SupportedArguments功能,以了解它可以使用哪些属性。

3. Applicability Statement
3. 适用性声明

Examples of SM usage include, but are not limited to, the following two usage scenarios. These two scenarios are not implementation details, but rather depict how the SM class can be used to achieve the intended SM for manipulating the configuration of FEs.

SM使用示例包括但不限于以下两种使用场景。这两个场景不是实现细节,而是描述了如何使用SM类来实现用于操纵FEs配置的预期SM。

3.1. FE Integrated
3.1. FE集成

Only one instance of the SM LFB class can exist and is directly related to the FE.

SM LFB类只能存在一个实例,并且与FE直接相关。

3.2. Virtual FEs
3.2. 虚拟FEs

In the case of the FE software that has hierarchical virtual FEs, multiple instances of the SM LFB class can exist, one per each virtual FE.

对于具有分层虚拟FE的FE软件,SM LFB类可以存在多个实例,每个虚拟FE一个实例。

4. SM Library
4. SM图书馆
4.1. Frame Definitions
4.1. 框架定义

This LFB class does not define any frames.

该LFB类不定义任何帧。

4.2. Data Type Definitions
4.2. 数据类型定义

This library defines the following data types.

此库定义以下数据类型。

   +------------+--------------------------------------+---------------+
   | Data Type  | Type                                 | Synopsis      |
   | Name       |                                      |               |
   +------------+--------------------------------------+---------------+
   | loglevels  | An enumerated char-based atomic data | The possible  |
   |            | type.                                | debug log     |
   |            |                                      | levels.       |
   |            |                                      | Derived from  |
   |            |                                      | syslog.       |
   | LogRowType | A struct containing three            | The logging   |
   |            | components: the LogModule (string),  | module row.   |
   |            | the optional ModuleFilename          |               |
   |            | (string), and the optional           |               |
   |            | DebugLevel, which is one of the      |               |
   |            | enumerated loglevels.                |               |
   | CERow      | A struct that contains three         | A struct that |
   |            | components: the address family of    | defines the   |
   |            | the CE IP (uchar), the CE's IPs      | CE table row. |
   |            | (octetstring[16]), and the CE's ID   |               |
   |            | (uint32).                            |               |
   | LCRowtype  | A struct that contains four          | The LFB Class |
   |            | components: the LFB class ID         | Configuration |
   |            | (uint32), the LFB version            | Definition.   |
   |            | (string[8]), the optional LFB Name   |               |
   |            | (string), and the optional           |               |
   |            | Parameters (string).                 |               |
   | NameVal    | A struct that contains two           | Arbitrary     |
   |            | components: an attribute name        | Name Value    |
   |            | (string) and an attribute value      | struct.       |
   |            | (string).                            |               |
   +------------+--------------------------------------+---------------+
        
   +------------+--------------------------------------+---------------+
   | Data Type  | Type                                 | Synopsis      |
   | Name       |                                      |               |
   +------------+--------------------------------------+---------------+
   | loglevels  | An enumerated char-based atomic data | The possible  |
   |            | type.                                | debug log     |
   |            |                                      | levels.       |
   |            |                                      | Derived from  |
   |            |                                      | syslog.       |
   | LogRowType | A struct containing three            | The logging   |
   |            | components: the LogModule (string),  | module row.   |
   |            | the optional ModuleFilename          |               |
   |            | (string), and the optional           |               |
   |            | DebugLevel, which is one of the      |               |
   |            | enumerated loglevels.                |               |
   | CERow      | A struct that contains three         | A struct that |
   |            | components: the address family of    | defines the   |
   |            | the CE IP (uchar), the CE's IPs      | CE table row. |
   |            | (octetstring[16]), and the CE's ID   |               |
   |            | (uint32).                            |               |
   | LCRowtype  | A struct that contains four          | The LFB Class |
   |            | components: the LFB class ID         | Configuration |
   |            | (uint32), the LFB version            | Definition.   |
   |            | (string[8]), the optional LFB Name   |               |
   |            | (string), and the optional           |               |
   |            | Parameters (string).                 |               |
   | NameVal    | A struct that contains two           | Arbitrary     |
   |            | components: an attribute name        | Name Value    |
   |            | (string) and an attribute value      | struct.       |
   |            | (string).                            |               |
   +------------+--------------------------------------+---------------+
        

FEM Data Types

有限元数据类型

4.3. Metadata Definitions
4.3. 元数据定义

This LFB does not define any metadata definitions.

此LFB不定义任何元数据定义。

4.4. SM
4.4. 性虐待

The Subsidiary Mechanism LFB is an LFB that standardizes configuration of the FE parameters.

辅助机制LFB是一种LFB,用于标准化FE参数的配置。

4.4.1. Data Handling
4.4.1. 数据处理

The SM LFB does not handle any packets. Its function is to provide the configuration parameters to the CE to be updated at runtime.

SM LFB不处理任何数据包。其功能是向CE提供要在运行时更新的配置参数。

4.4.2. Components
4.4.2. 组件

This LFB class has four components specified.

该LFB类指定了四个组件。

The Debug component (ID 1) is a table to support changing of an FE's module debug levels. Changes in an FE's debug table rows will alter the debug level of the corresponding module.

调试组件(ID 1)是一个支持更改FE模块调试级别的表。FE调试表行中的更改将改变相应模块的调试级别。

The LFBLoad component (ID 2) is a table of LFB classes that the FE loads. Adding new rows in this table instructs the FE to load new LFB classes, and removing rows will unload them when possible. These two actions will, in effect, alter the SupportedLFBs capabilities table of FEObject LFB [RFC5812]. Each such row MUST provide (and is specified by this library) the LFB class ID. Optionally, the LFB class ID version may be specified, and the FE MUST assume that version 1.0 is used when the version is unspecified.

LFBLoad组件(ID2)是FE加载的LFB类的表。在此表中添加新行将指示FE加载新的LFB类,如果可能,删除行将卸载它们。这两个操作实际上将改变FEObject LFB[RFC5812]的SupportedLFBs能力表。每个这样的行必须提供(并由该库指定)LFB类ID。或者,可以指定LFB类ID版本,FE必须假设在未指定版本时使用版本1.0。

The AttributeValues component (ID 3) is the AttributeValues table, a generic attribute-value pair.

AttributeValues组件(ID 3)是AttributeValues表,一个通用属性值对。

The CEs (ID 4) is the table of runtime CEs we are asking the FE to be able to connect with. By adding a row in this table, the CE instructs the FE to be able to connect with the specified CE. By doing a delete on this table, the CE instructs the FE to terminate any connection with that CE. How the FE interacts with the new CEs is dependent on the operations discussed in [RFC7121].

CEs(ID 4)是我们要求FE能够连接的运行时CEs表。通过在此表中添加一行,CE指示FE能够连接到指定的CE。通过对此表执行删除操作,CE指示FE终止与该CE的任何连接。FE如何与新CEs相互作用取决于[RFC7121]中讨论的操作。

It is worth noting that the generic attribute-value pairs, the LFBload parameters, and the module information are all strings. To cope with string sizes, a CE application can extract that information from the component properties as defined in [RFC5812].

值得注意的是,通用属性值对、LFBload参数和模块信息都是字符串。为了处理字符串大小,CE应用程序可以从[RFC5812]中定义的组件属性中提取该信息。

4.4.3. Capabilities
4.4.3. 能力

This LFB provides three capabilities. The first, DynamicLFBLoading, specifies whether this FE supports dynamic loading of new LFB classes. The second, SupportedParameters, is a placeholder and will store all the supported parameters for LFB class loading. The final, SupportedAttributes, is also a placeholder and will store all the supported attributes for the attribute-value pair table.

此LFB提供三种功能。第一个是DynamicLFBLoading,指定此FE是否支持新LFB类的动态加载。第二个是SupportedParameters,它是一个占位符,将存储LFB类加载所支持的所有参数。最后一个SupportedAttribute也是一个占位符,它将存储属性值对表中所有支持的属性。

4.4.4. Events
4.4.4. 事件

This LFB has four events specified.

此LFB指定了四个事件。

Two events reflect CE additions and report to the CE whether an entry of the CEs information has been added or deleted. In both cases, the event report constitutes the added or deleted row contents.

两个事件反映了CE的添加,并向CE报告CEs信息条目是否已添加或删除。在这两种情况下,事件报告构成添加或删除的行内容。

The other two events reflect LFB class loading and notify whether an entry of the LFBLoad table is added or deleted.

其他两个事件反映LFB类加载,并通知是否添加或删除LFBLoad表的条目。

5. XML for SM LFB
5. 用于SM LFB的XML
   <LFBLibrary xmlns="urn:ietf:params:xml:ns:forces:lfbmodel:1.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" provides="SM">
     <!-- XXX  -->
     <dataTypeDefs>
       <dataTypeDef>
         <name>loglevels</name>
         <synopsis>The possible debug log levels. Derived from syslog.
         </synopsis>
         <atomic>
           <baseType>char</baseType>
           <specialValues>
             <specialValue value="-1">
               <name>DEB_OFF</name>
               <synopsis> The logs are totally turned off </synopsis>
             </specialValue>
             <specialValue value="0">
               <name>DEB_EMERG</name>
               <synopsis> Emergency level </synopsis>
             </specialValue>
             <specialValue value="1">
               <name>DEB_ALERT</name>
               <synopsis> Alert level </synopsis>
             </specialValue>
             <specialValue value="2">
               <name>DEB_CRIT</name>
               <synopsis> Critical level </synopsis>
             </specialValue>
             <specialValue value="3">
               <name>DEB_ERR</name>
               <synopsis> error level </synopsis>
             </specialValue>
             <specialValue value="4">
               <name>DEB_WARNING</name>
               <synopsis> warning level </synopsis>
             </specialValue>
        
   <LFBLibrary xmlns="urn:ietf:params:xml:ns:forces:lfbmodel:1.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" provides="SM">
     <!-- XXX  -->
     <dataTypeDefs>
       <dataTypeDef>
         <name>loglevels</name>
         <synopsis>The possible debug log levels. Derived from syslog.
         </synopsis>
         <atomic>
           <baseType>char</baseType>
           <specialValues>
             <specialValue value="-1">
               <name>DEB_OFF</name>
               <synopsis> The logs are totally turned off </synopsis>
             </specialValue>
             <specialValue value="0">
               <name>DEB_EMERG</name>
               <synopsis> Emergency level </synopsis>
             </specialValue>
             <specialValue value="1">
               <name>DEB_ALERT</name>
               <synopsis> Alert level </synopsis>
             </specialValue>
             <specialValue value="2">
               <name>DEB_CRIT</name>
               <synopsis> Critical level </synopsis>
             </specialValue>
             <specialValue value="3">
               <name>DEB_ERR</name>
               <synopsis> error level </synopsis>
             </specialValue>
             <specialValue value="4">
               <name>DEB_WARNING</name>
               <synopsis> warning level </synopsis>
             </specialValue>
        
             <specialValue value="5">
               <name>DEB_NOTICE</name>
               <synopsis>Notice level </synopsis>
             </specialValue>
             <specialValue value="6">
               <name>DEB_INFO</name>
               <synopsis>Info level </synopsis>
             </specialValue>
             <specialValue value="7">
               <name>DEB_DEBUG</name>
               <synopsis>Debug level </synopsis>
             </specialValue>
           </specialValues>
         </atomic>
       </dataTypeDef>
       <dataTypeDef>
         <name>LogRowtype</name>
         <synopsis>The logging module row</synopsis>
         <struct>
           <component componentID="1">
             <name>lmodule</name>
             <synopsis>The LOG Module Name</synopsis>
             <typeRef>string</typeRef>
           </component>
           <component componentID="2">
             <name>filename</name>
             <synopsis>The Module File Name</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="3">
             <name>deblvl</name>
             <synopsis>debug level</synopsis>
             <optional/>
             <typeRef>loglevels</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>CERow</name>
         <synopsis>The CE Table Row</synopsis>
         <struct>
           <component componentID="1">
             <name>AddressFamily</name>
             <synopsis>The address family</synopsis>
             <atomic>
               <baseType>uchar</baseType>
               <specialValues>
        
             <specialValue value="5">
               <name>DEB_NOTICE</name>
               <synopsis>Notice level </synopsis>
             </specialValue>
             <specialValue value="6">
               <name>DEB_INFO</name>
               <synopsis>Info level </synopsis>
             </specialValue>
             <specialValue value="7">
               <name>DEB_DEBUG</name>
               <synopsis>Debug level </synopsis>
             </specialValue>
           </specialValues>
         </atomic>
       </dataTypeDef>
       <dataTypeDef>
         <name>LogRowtype</name>
         <synopsis>The logging module row</synopsis>
         <struct>
           <component componentID="1">
             <name>lmodule</name>
             <synopsis>The LOG Module Name</synopsis>
             <typeRef>string</typeRef>
           </component>
           <component componentID="2">
             <name>filename</name>
             <synopsis>The Module File Name</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="3">
             <name>deblvl</name>
             <synopsis>debug level</synopsis>
             <optional/>
             <typeRef>loglevels</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>CERow</name>
         <synopsis>The CE Table Row</synopsis>
         <struct>
           <component componentID="1">
             <name>AddressFamily</name>
             <synopsis>The address family</synopsis>
             <atomic>
               <baseType>uchar</baseType>
               <specialValues>
        
                 <specialValue value="2">
                   <name>IFA_AF_INET</name>
                   <synopsis>IPv4</synopsis>
                 </specialValue>
                 <specialValue value="10">
                   <name>IFA_AF_INET6</name>
                   <synopsis>IPv6</synopsis>
                 </specialValue>
               </specialValues>
             </atomic>
           </component>
           <component componentID="2">
             <name>CEIP</name>
             <synopsis>CE ip v4 or v6(selected by family)</synopsis>
             <typeRef>octetstring[16]</typeRef>
           </component>
           <component componentID="3">
             <name>CEID</name>
             <synopsis>The CE ID</synopsis>
             <optional/>
             <typeRef>uint32</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>LCRowtype</name>
         <synopsis>The LFB Class Configuration Definition</synopsis>
         <struct>
           <component componentID="1">
             <name>LFBClassID</name>
             <synopsis>The LFB Class ID</synopsis>
             <typeRef>uint32</typeRef>
           </component>
           <component componentID="2">
             <name>LFBVersion</name>
             <synopsis>The LFB Class Version</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="3">
             <name>LFBName</name>
             <synopsis>The LFB Class Name</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="4">
             <name>Parameters</name>
             <synopsis>Optional parameters such as where the LFB is
        
                 <specialValue value="2">
                   <name>IFA_AF_INET</name>
                   <synopsis>IPv4</synopsis>
                 </specialValue>
                 <specialValue value="10">
                   <name>IFA_AF_INET6</name>
                   <synopsis>IPv6</synopsis>
                 </specialValue>
               </specialValues>
             </atomic>
           </component>
           <component componentID="2">
             <name>CEIP</name>
             <synopsis>CE ip v4 or v6(selected by family)</synopsis>
             <typeRef>octetstring[16]</typeRef>
           </component>
           <component componentID="3">
             <name>CEID</name>
             <synopsis>The CE ID</synopsis>
             <optional/>
             <typeRef>uint32</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>LCRowtype</name>
         <synopsis>The LFB Class Configuration Definition</synopsis>
         <struct>
           <component componentID="1">
             <name>LFBClassID</name>
             <synopsis>The LFB Class ID</synopsis>
             <typeRef>uint32</typeRef>
           </component>
           <component componentID="2">
             <name>LFBVersion</name>
             <synopsis>The LFB Class Version</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="3">
             <name>LFBName</name>
             <synopsis>The LFB Class Name</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
           <component componentID="4">
             <name>Parameters</name>
             <synopsis>Optional parameters such as where the LFB is
        
             located</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>NameVal</name>
         <synopsis>Arbitrary Name Value struct</synopsis>
         <struct>
           <component componentID="1">
             <name>AttrName</name>
             <synopsis>The Attribute Name</synopsis>
             <typeRef>string</typeRef>
           </component>
           <component componentID="2">
             <name>AttrVal</name>
             <synopsis>The Attribute Value</synopsis>
             <typeRef>string</typeRef>
           </component>
         </struct>
       </dataTypeDef>
     </dataTypeDefs>
     <LFBClassDefs>
       <LFBClassDef LFBClassID="19">
         <name>SM</name>
         <synopsis>
            The Subsidiary Management LFB
         </synopsis>
         <version>1.0</version>
         <components>
           <component componentID="1" access="read-write">
             <name>Debug</name>
             <synopsis>A table to support changing of all debug levels
             </synopsis>
             <array type="variable-size">
               <typeRef>LogRowtype</typeRef>
             </array>
           </component>
           <component componentID="2" access="write-only">
             <name>LFBLoad</name>
             <synopsis>An LFB Class to Load</synopsis>
             <array type="variable-size">
               <typeRef>LCRowtype</typeRef>
             </array>
           </component>
           <component componentID="3" access="read-write">
             <name>AttributeValues</name>
        
             located</synopsis>
             <optional/>
             <typeRef>string</typeRef>
           </component>
         </struct>
       </dataTypeDef>
       <dataTypeDef>
         <name>NameVal</name>
         <synopsis>Arbitrary Name Value struct</synopsis>
         <struct>
           <component componentID="1">
             <name>AttrName</name>
             <synopsis>The Attribute Name</synopsis>
             <typeRef>string</typeRef>
           </component>
           <component componentID="2">
             <name>AttrVal</name>
             <synopsis>The Attribute Value</synopsis>
             <typeRef>string</typeRef>
           </component>
         </struct>
       </dataTypeDef>
     </dataTypeDefs>
     <LFBClassDefs>
       <LFBClassDef LFBClassID="19">
         <name>SM</name>
         <synopsis>
            The Subsidiary Management LFB
         </synopsis>
         <version>1.0</version>
         <components>
           <component componentID="1" access="read-write">
             <name>Debug</name>
             <synopsis>A table to support changing of all debug levels
             </synopsis>
             <array type="variable-size">
               <typeRef>LogRowtype</typeRef>
             </array>
           </component>
           <component componentID="2" access="write-only">
             <name>LFBLoad</name>
             <synopsis>An LFB Class to Load</synopsis>
             <array type="variable-size">
               <typeRef>LCRowtype</typeRef>
             </array>
           </component>
           <component componentID="3" access="read-write">
             <name>AttributeValues</name>
        
             <synopsis>Table of general purpose SM attribute Values
             </synopsis>
             <array type="variable-size">
               <typeRef>NameVal</typeRef>
             </array>
           </component>
           <component componentID="4" access="write-only">
             <name>CEs</name>
             <synopsis>Table of CEs we are asking the FE to associate
              with</synopsis>
             <array type="variable-size">
               <typeRef>CERow</typeRef>
             </array>
           </component>
         </components>
         <!---->
         <capabilities>
           <capability componentID="10">
             <name>DynamicLFBLoading</name>
            <synopsis>This capability specifies whether this FE supports
              dynamic loading of new LFBs</synopsis>
             <typeRef>boolean</typeRef>
           </capability>
           <capability componentID="11">
             <name>SupportedParameters</name>
             <synopsis>This capability contains all the supported
              parameters</synopsis>
             <array type="variable-size">
               <typeRef>string</typeRef>
             </array>
           </capability>
           <capability componentID="12">
             <name>SupportedAttributes</name>
             <synopsis>This capability contains all the supported
              attributes names</synopsis>
             <array type="variable-size">
               <typeRef>string</typeRef>
             </array>
           </capability>
         </capabilities>
         <events baseID="20">
           <event eventID="1">
             <name>CEAdded</name>
             <synopsis>An CE has been added</synopsis>
             <eventTarget>
               <eventField>CEs</eventField>
             </eventTarget>
             <eventCreated/>
        
             <synopsis>Table of general purpose SM attribute Values
             </synopsis>
             <array type="variable-size">
               <typeRef>NameVal</typeRef>
             </array>
           </component>
           <component componentID="4" access="write-only">
             <name>CEs</name>
             <synopsis>Table of CEs we are asking the FE to associate
              with</synopsis>
             <array type="variable-size">
               <typeRef>CERow</typeRef>
             </array>
           </component>
         </components>
         <!---->
         <capabilities>
           <capability componentID="10">
             <name>DynamicLFBLoading</name>
            <synopsis>This capability specifies whether this FE supports
              dynamic loading of new LFBs</synopsis>
             <typeRef>boolean</typeRef>
           </capability>
           <capability componentID="11">
             <name>SupportedParameters</name>
             <synopsis>This capability contains all the supported
              parameters</synopsis>
             <array type="variable-size">
               <typeRef>string</typeRef>
             </array>
           </capability>
           <capability componentID="12">
             <name>SupportedAttributes</name>
             <synopsis>This capability contains all the supported
              attributes names</synopsis>
             <array type="variable-size">
               <typeRef>string</typeRef>
             </array>
           </capability>
         </capabilities>
         <events baseID="20">
           <event eventID="1">
             <name>CEAdded</name>
             <synopsis>An CE has been added</synopsis>
             <eventTarget>
               <eventField>CEs</eventField>
             </eventTarget>
             <eventCreated/>
        
             <eventReports>
               <eventReport>
                 <eventField>CEs</eventField>
                 <eventSubscript>_CEIDsrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="2">
             <name>CEDeleted</name>
             <synopsis>An CE has been deleted</synopsis>
             <eventTarget>
               <eventField>CEs</eventField>
               <eventSubscript>_CEIDsrowid_</eventSubscript>
             </eventTarget>
             <eventDeleted/>
             <eventReports>
               <eventReport>
                 <eventField>CEs</eventField>
                 <eventSubscript>_CEIDsrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="3">
             <name>LFBLoaded</name>
             <synopsis>An LFB has been loaded</synopsis>
             <eventTarget>
               <eventField>LFBLoad</eventField>
             </eventTarget>
             <eventCreated/>
             <eventReports>
               <eventReport>
                 <eventField>LFBLoad</eventField>
                 <eventSubscript>_LFBLoadrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="4">
             <name>LFBUnloaded</name>
             <synopsis>An CE has been unloaded</synopsis>
             <eventTarget>
               <eventField>LFBLoad</eventField>
               <eventSubscript>_LFBLoadrowid_</eventSubscript>
             </eventTarget>
             <eventDeleted/>
             <eventReports>
               <eventReport>
                 <eventField>LFBLoad</eventField>
                 <eventSubscript>_LFBLoadrowid_</eventSubscript>
        
             <eventReports>
               <eventReport>
                 <eventField>CEs</eventField>
                 <eventSubscript>_CEIDsrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="2">
             <name>CEDeleted</name>
             <synopsis>An CE has been deleted</synopsis>
             <eventTarget>
               <eventField>CEs</eventField>
               <eventSubscript>_CEIDsrowid_</eventSubscript>
             </eventTarget>
             <eventDeleted/>
             <eventReports>
               <eventReport>
                 <eventField>CEs</eventField>
                 <eventSubscript>_CEIDsrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="3">
             <name>LFBLoaded</name>
             <synopsis>An LFB has been loaded</synopsis>
             <eventTarget>
               <eventField>LFBLoad</eventField>
             </eventTarget>
             <eventCreated/>
             <eventReports>
               <eventReport>
                 <eventField>LFBLoad</eventField>
                 <eventSubscript>_LFBLoadrowid_</eventSubscript>
               </eventReport>
             </eventReports>
           </event>
           <event eventID="4">
             <name>LFBUnloaded</name>
             <synopsis>An CE has been unloaded</synopsis>
             <eventTarget>
               <eventField>LFBLoad</eventField>
               <eventSubscript>_LFBLoadrowid_</eventSubscript>
             </eventTarget>
             <eventDeleted/>
             <eventReports>
               <eventReport>
                 <eventField>LFBLoad</eventField>
                 <eventSubscript>_LFBLoadrowid_</eventSubscript>
        
               </eventReport>
             </eventReports>
           </event>
         </events>
       </LFBClassDef>
     </LFBClassDefs>
   </LFBLibrary>
        
               </eventReport>
             </eventReports>
           </event>
         </events>
       </LFBClassDef>
     </LFBClassDefs>
   </LFBLibrary>
        

Figure 2: FEM XML LFB Library

图2:FEM XML LFB库

6. Security Considerations
6. 安全考虑

This document does not alter the ForCES model [RFC5812] or the ForCES protocol [RFC5810]. As such, it has no impact on their security considerations. This document simply defines the operational parameters and capabilities of an LFB that manage the SM for loading LFBs and create new connections between FEs and CEs.

本文件不改变部队模型[RFC5812]或部队协议[RFC5810]。因此,这对他们的安全考虑没有影响。本文档仅定义LFB的操作参数和功能,LFB管理SM以加载LFB,并在FEs和CEs之间创建新连接。

On the issue of trust, a designer should take into account that the CE that creates new connections to CEs is either:

关于信任问题,设计者应考虑到创建到CEs的新连接的CE是:

o The FE manager that is responsible for managing the FEs, or

o 负责管理FEs的FE经理,或

o An already associated CE

o 已关联的CE

In both of these cases, the entity making the connections should already be trusted to perform such activities. If the entity making the connections is faulty, rogue, or hacked, there is no way for the FE to know this, and it will perform any action that the CE requests. Therefore, this document does not attempt to analyze the security issues that may arise from misuse of the SM LFB. Any such issues, if they exist, and mitigation strategies are for the designers of the particular SM implementation, not the general mechanism.

在这两种情况下,应该信任建立连接的实体来执行这些活动。如果建立连接的实体出现故障、流氓或黑客攻击,FE无法知道这一点,它将执行CE请求的任何操作。因此,本文件不试图分析误用SM LFB可能产生的安全问题。任何此类问题(如果存在)和缓解策略都是针对特定SM实现的设计者,而不是针对一般机制。

The reader is also referred to the ForCES framework [RFC3746] document, particularly Section 8, for an analysis of potential threats introduced by ForCES and how the ForCES architecture addresses them.

读者还可参考部队框架[RFC3746]文件,特别是第8节,以分析部队带来的潜在威胁以及部队架构如何应对这些威胁。

7. IANA Considerations
7. IANA考虑
7.1. LFB Class Names and LFB Class Identifiers
7.1. LFB类名称和LFB类标识符

LFB classes defined by this document belong to LFBs defined by Standards Track RFCs. The registration procedure is Standards Action for the range 0 to 65535 and First Come First Served with any publicly available specification for identifiers over 65535 [RFC5226]. This specification registers the following LFB class name and LFB class identifier in the "Logical Functional Block (LFB) Class Names and Class Identifiers" registry:

本文件定义的LFB类属于标准跟踪RFC定义的LFB。注册程序为0至65535范围内的标准行动,先到先得,并提供65535以上标识符的任何公开规范[RFC5226]。本规范在“逻辑功能块(LFB)类名称和类标识符”注册表中注册以下LFB类名称和LFB类标识符:

   +------------+--------+---------+-----------------------+-----------+
   | LFB Class  |  LFB   |   LFB   |      Description      | Reference |
   | Identifier | Class  | Version |                       |           |
   |            |  Name  |         |                       |           |
   +------------+--------+---------+-----------------------+-----------+
   |     19     |   SM   |   1.0   |      An SM LFB to     |  RFC 7729 |
   |            |        |         |      standardize      |   (this   |
   |            |        |         | subsidiary management | document) |
   |            |        |         |   for ForCES Network  |           |
   |            |        |         |        Elements       |           |
   +------------+--------+---------+-----------------------+-----------+
        
   +------------+--------+---------+-----------------------+-----------+
   | LFB Class  |  LFB   |   LFB   |      Description      | Reference |
   | Identifier | Class  | Version |                       |           |
   |            |  Name  |         |                       |           |
   +------------+--------+---------+-----------------------+-----------+
   |     19     |   SM   |   1.0   |      An SM LFB to     |  RFC 7729 |
   |            |        |         |      standardize      |   (this   |
   |            |        |         | subsidiary management | document) |
   |            |        |         |   for ForCES Network  |           |
   |            |        |         |        Elements       |           |
   +------------+--------+---------+-----------------------+-----------+
        

Logical Functional Block (LFB) Class Name and Class Identifier

逻辑功能块(LFB)类名和类标识符

8. References
8. 工具书类
8.1. Normative References
8.1. 规范性引用文件

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<http://www.rfc-editor.org/info/rfc2119>.

[RFC5810] Doria, A., Ed., Hadi Salim, J., Ed., Haas, R., Ed., Khosravi, H., Ed., Wang, W., Ed., Dong, L., Gopal, R., and J. Halpern, "Forwarding and Control Element Separation (ForCES) Protocol Specification", RFC 5810, DOI 10.17487/RFC5810, March 2010, <http://www.rfc-editor.org/info/rfc5810>.

[RFC5810]Doria,A.,Ed.,Hadi Salim,J.,Ed.,Haas,R.,Ed.,Khosravi,H.,Ed.,Wang,W.,Ed.,Dong,L.,Gopal,R.,和J.Halpern,“转发和控制元件分离(部队)协议规范”,RFC 5810,DOI 10.17487/RFC5810,2010年3月<http://www.rfc-editor.org/info/rfc5810>.

[RFC5812] Halpern, J. and J. Hadi Salim, "Forwarding and Control Element Separation (ForCES) Forwarding Element Model", RFC 5812, DOI 10.17487/RFC5812, March 2010, <http://www.rfc-editor.org/info/rfc5812>.

[RFC5812]Halpern,J.和J.Hadi Salim,“转发和控制分队(部队)转发分队模型”,RFC 5812,DOI 10.17487/RFC5812,2010年3月<http://www.rfc-editor.org/info/rfc5812>.

[RFC7121] Ogawa, K., Wang, W., Haleplidis, E., and J. Hadi Salim, "High Availability within a Forwarding and Control Element Separation (ForCES) Network Element", RFC 7121, DOI 10.17487/RFC7121, February 2014, <http://www.rfc-editor.org/info/rfc7121>.

[RFC7121]Ogawa,K.,Wang,W.,Haleplidis,E.,和J.Hadi Salim,“转发和控制单元分离(部队)网元内的高可用性”,RFC 7121,DOI 10.17487/RFC71212014年2月<http://www.rfc-editor.org/info/rfc7121>.

8.2. Informative References
8.2. 资料性引用

[RFC3164] Lonvick, C., "The BSD Syslog Protocol", RFC 3164, DOI 10.17487/RFC3164, August 2001, <http://www.rfc-editor.org/info/rfc3164>.

[RFC3164]Lonvick,C.,“BSD系统日志协议”,RFC 3164,DOI 10.17487/RFC3164,2001年8月<http://www.rfc-editor.org/info/rfc3164>.

[RFC3654] Khosravi, H., Ed. and T. Anderson, Ed., "Requirements for Separation of IP Control and Forwarding", RFC 3654, DOI 10.17487/RFC3654, November 2003, <http://www.rfc-editor.org/info/rfc3654>.

[RFC3654]Khosravi,H.,Ed.和T.Anderson,Ed.,“IP控制和转发分离的要求”,RFC 3654,DOI 10.17487/RFC3654,2003年11月<http://www.rfc-editor.org/info/rfc3654>.

[RFC3746] Yang, L., Dantu, R., Anderson, T., and R. Gopal, "Forwarding and Control Element Separation (ForCES) Framework", RFC 3746, DOI 10.17487/RFC3746, April 2004, <http://www.rfc-editor.org/info/rfc3746>.

[RFC3746]Yang,L.,Dantu,R.,Anderson,T.,和R.Gopal,“前进和控制分队(部队)框架”,RFC 3746,DOI 10.17487/RFC3746,2004年4月<http://www.rfc-editor.org/info/rfc3746>.

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, DOI 10.17487/RFC5226, May 2008, <http://www.rfc-editor.org/info/rfc5226>.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,DOI 10.17487/RFC5226,2008年5月<http://www.rfc-editor.org/info/rfc5226>.

Acknowledgments

致谢

The authors would like to thank Damascene Joachimpillai, Joel Halpern, Chuanhuang Li, and many others for their discussions and support.

作者要感谢大马士革Joachimpillai、Joel Halpern、李传煌和其他许多人的讨论和支持。

The authors are grateful to Joel Halpern for shepherding this document. The authors would also like to thank Alia Atlas for taking on the role of sponsoring this document. Finally, thanks to Juergen Schoenwaelder for his operational directorate's review and Alexey Melnikov for his security review.

作者感谢Joel Halpern对本文件的指导。作者还要感谢Alia Atlas担任本文件的提案人。最后,感谢Juergen Schoenwaeld对其运营董事会的审查,以及Alexey Melnikov对其安全审查。

Authors' Addresses

作者地址

Bhumip Khasnabish ZTE TX, Inc. 55 Madison Avenue, Suite 160 Morristown, New Jersey 07960 United States

普密普哈斯纳比什中兴通讯德克萨斯州公司,美国新泽西州莫里斯镇麦迪逊大道55号160室,邮编:07960

   Phone: +001-781-752-8003
   Email: vumip1@gmail.com, bhumip.khasnabish@ztetx.com
   URI:   http://tinyurl.com/bhumip/
        
   Phone: +001-781-752-8003
   Email: vumip1@gmail.com, bhumip.khasnabish@ztetx.com
   URI:   http://tinyurl.com/bhumip/
        

Evangelos Haleplidis University of Patras Department of Electrical and Computer Engineering Patras 26500 Greece

佩特雷大学电气与计算机工程系帕特雷26500希腊分校

   Email: ehalep@ece.upatras.gr
        
   Email: ehalep@ece.upatras.gr
        

Jamal Hadi Salim (editor) Mojatatu Networks Suite 200, 15 Fitzgerald Road Ottawa, Ontario K2H 9G1 Canada

Jamal Hadi Salim(编辑)加拿大安大略省渥太华菲茨杰拉德路15号Mojatatu Networks套房200 K2H 9G1

   Email: hadi@mojatatu.com
        
   Email: hadi@mojatatu.com