2021-02-02 SONiC系统管理 18配置文件格式

2023-05-16

SONiC系统管理 18

配置文件格式

前面说到了SONiC系统启动时通过读取初始配置文件的内容来配置系统,SONiC系统默认初始配置文件的位置在/etc/sonic.startup.config。文件内容再进一步指示各种不同类型配置文件的位置。SONiC系统采用过MiniGraph的初始配置文件,后来改为数据库导出的JSON文件作为初始配置文件,也就是config_db.json这个文件。
如果需要让一个SONiC系统在重启以后自动进行初始配置,只需要将配置内容按格式写入config_db.json这个文件,本文进行研究了一下这个初始配置文件怎么写才能符合SONiC系统要求,配置文件编写错误会引起SONiC系统启动错误。
在SONiC相关文档中说明了config_db.json和其他DB的导出文件都是基于ABNF(RFC5234)的规则来描述的,ABNF是Augmented Backus-Naur Form的缩写,中文翻译增强的巴科斯范式。对于计算机语言的学习者来说必须了解什么是BNF和ABNF。一种计算机语言,如C,C++,Java等有自己的语法规则和标记方法,BNF/ABNF就是描述这种规则的语言。
简单理解了ABNF,可以为理解具体表格描述中每个表项的规则要求提供很多方便。
| : 表示在其左右两边任选一项,相当于"OR"的意思。
/ :一般选择操作符 (A / B)
12HEXDIG,164VCHAR,14DIGIT 等等都是ABNF描述的这个表项的取值规则。

config_db.json文件包括下来表格的描述:

PORT_TABLE

;Configuration for layer 2 ports
key = PORT|ifname ; ifname must be unique across PORT,INTF,VLAN,LAG TABLES
admin_status = “down” / “up” ; admin status
lanes = list of lanes ; (need format spec???)
mac = 12HEXDIG ;
alias = 164VCHAR ; alias name of the port used by LLDP and SNMP, must be unique
description = 1
64VCHAR ; port description
speed = 16DIGIT ; port line speed in Mbps
mtu = 1
4DIGIT ; port MTU
fec = 1*64VCHAR ; port fec mode
autoneg = BIT ; auto-negotiation mode

MGMT_PORT_TABLE

;Configuration for management port, including at least one key
key                 = MGMT_PORT|ifname    ; ifname must be unique across PORT,INTF,VLAN,LAG TABLES
admin_status        = "down" / "up" ; admin status
mac                 = 12HEXDIG      ;
alias               = 1*64VCHAR     ; alias name of the port used by LLDP and SNMP, must be unique
description         = 1*64VCHAR     ; port description
speed               = 1*6DIGIT      ; port line speed in Mbps
mtu                 = 1*4DIGIT      ; port MTU
fec                 = 1*64VCHAR     ; port fec mode
autoneg             = BIT           ; auto-negotiation mode

WARM_RESTART

;Stores system warm start configuration
;Status: work in progress

key                 = WARM_RESTART:name ; name is the name of SONiC docker or "system" for global configuration.

neighsyncd_timer    = 1*4DIGIT          ; neighsyncd_timer is the timer used for neighsyncd during the warm restart.
                                        ; Timer is started after we restored the neighborTable to internal data structures.
                                        ; neighborsyncd then starts to read all linux kernel entries and mark the entries in
                                        ; the data structures accordingly. Once the timer is expired, we will do reconciliation
                                        ; and push the delta to appDB
                                        ; Valid value is 1-9999. 0 is invalid.

bgp_timer           = 1*4DIGIT          ; bgp_timer holds the time interval utilized by fpmsyncd during warm-restart episodes.
                                        ; During this interval fpmsyncd will recover all the routing state previously pushed to
                                        ; AppDB, as well as all the new state coming from zebra/bgpd. Upon expiration of this
                                        ; timer, fpmsyncd will execute the reconciliation logic to eliminate all the staled
                                        ; state from AppDB. This timer should match the BGP-GR restart-timer configured within
                                        ; the elected routing-stack.
                                        ; Supported range: 1-3600.

teamsyncd_timer     = 1*4DIGIT          ; teamsyncd_timer holds the time interval utilized by teamsyncd during warm-restart episodes.
                                        ; The timer is started when teamsyncd starts. During the timer interval teamsyncd
                                        ; will preserver all LAG interface changes, but it will not apply them. The changes
                                        ; will only be applied when the timer expired. During the changes application the stale
                                        ; LAG entries will be removed, the new LAG entries will be created.
                                        ; Supported range: 1-9999. 0 is invalid

VXLAN_TUNNEL

Stores vxlan tunnels configuration
Status: ready

key       = VXLAN_TUNNEL:name               ; name is an arbitrary name of vxlan tunnel
src_ip    = ipv4_address                    ; tunnel source IP address. Mandatory
dst_ip    = ipv4_address                    ; tunnel destination IP address. Optional. When this attribute is omitted or equal to "0.0.0.0"
                                            ; the created tunnel will be P2MP. Otherwise the created tunnel will be P2P

VXLAN_TUNNEL_MAP

Stores vxlan tunnel map configuration. Defines mapping between vxlan vni and vlan interface
Status: ready

key       = VXLAN_TUNNEL_MAP:tunnel_name:tunnel_map_name
                                            ; tunnel_name is a reference to created vxlan tunnel
                                            ; tunnel_map_name is an arbitrary name of the map
vni       = uint24                          ; vni id, defined for tunnel map
vlan      = "Vlan"vlan_id                   ; name of the existing vlan interface

NEIGH_TABLE

; Stores the neighbors. Defines static configuration of neighbor entries. If mac address is not specified, implementation shall resolve the mac-address for the neighbor IP.
key           = NEIGH|PORT_TABLE.name / VLAN_INTF_TABLE.name / LAG_INTF_TABLE.name|prefix
neigh         = 12HEXDIG         ; mac address of the neighbor (optional)
family        = "IPv4" / "IPv6"  ; address family
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-02-02 SONiC系统管理 18配置文件格式 的相关文章

  • 【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

    大家好 xff0c 我是小政 本篇文章我将针对PID调参进行详细的讲解 xff0c 让每位小伙伴能够对比例 积分 微分三个参数如何调节有更加清晰的理解 一 调参步骤 确立机械中值直立环 xff08 内环 xff09 Kp极性 Kp大小 Kd
  • 第七章:总线

    7 1总线概述 总线概述 总线是一组能为多个部件分时共享的公共信息传送线路 共享是指总线上可以挂接多个部件 xff0c 各个部件之间相互交换的信息都可以通过这组公共线路传送 xff1b 分时是指同一时刻总线上只能传送一个部件发送的信息 总线
  • Jetson 系统监视程序Jtop及Jetson基本信息查询

    开启后的界面如下 xff1a 安装Jetson的监视程序 xff1a 了解安装的Jetpack版本是多少 xff1f 了解 GPU 的使用率 xff1f 了解Jetson机器工作在什么模式下 xff1f 了解CPU用了几个 xff1f 散热
  • MVC设计模式

    MVC模式 xff08 Model View Controller xff09 是软件工程中的一种软件架构模式 xff0c 把软件系统分为三个基本部分 xff1a 模型 xff08 Model xff09 视图 xff08 View xff
  • Docker常用基础命令

    目录 1 docker version 查看版本信息 2 docker info 查看docker的一些信息 3 docker search 镜像搜索 4 docker pull 拉取镜像到本地 5 docker push 推送本地的镜像到
  • 硬件基础之变频器&逆变器

    变频器 amp 逆变器工作原理 基本概念直流产生方波思路正弦波产生原理正弦波产生之制作脉冲正弦波产生之滤波 amp 平均 基本概念 逆变器 xff1a 直流电 xff08 DC xff09 转变为交流电 xff08 AC xff09 变频器
  • 硬件基础之STM32最小系统

    STM32 复位电路时钟电路SWD下载电路BOOT电路RTC时钟电源电路 复位电路 STM32为低电平复位 xff0c 上电瞬间电流可视为交流 xff0c 电容导通 xff08 充电过程 xff0c NRST为低电平 xff0c 两个机械周
  • 数据结构常用的结构体定义

    一 顺序表结构体定义 xff1a typedef struct int data maxsize int length Sqlist 二 单链表结构体定义 xff1a typedef struct LNode int data struct
  • Linux基础入门(常用指令总结)

    相信大家对Linux都不陌生 xff0c 本篇文章就详细介绍一些常用的Linux命令 目录 前言 一 Linux是什么 xff1f 二 常用命令 1 cd 切换文件夹 2 ls 查看目录内容 3 mkdir 创建文件夹 4 touch 创建
  • 第7章:OFDM 信道估计与均衡(2)

    第7章 xff08 2 xff09 内容如下 xff1a 一 瑞利衰落信道介绍二 OFDM经过多径衰落信道的误码率分析三 总结 本文对应的完整可运行代码下载地址 xff1a 123kevin456 OFDM 一 瑞利衰落信道介绍 第 xff
  • 阿里云ECS服务器ubuntu18.04图形界面安装配置

    先说一下我用的ECS配置 服务器配置 xff1a 2 vCPU 4 GiB 系统镜像 xff1a ubuntu18 04 xff08 64位 xff09 本文的配置方法在 ubuntu 16 04 上一样适用 1 安装图形化界面 网上一大堆
  • java多线程-进程与线程基础-1

    基本概念 进程 是并发执行的程序在执行过程中分配和管理资源的基本单位 xff0c 是一个动态概念 xff0c 竟争计算机系统资源的基本单位 每一个进程都有一个自己的地址空 间 xff0c 即进程空间或 xff08 虚空间 xff09 进程空
  • 自由度的理解

    研究六轴机械臂的运动学前 xff0c 需要知道机械臂的自由度的定义 xff1a 物体上的任意一个参考点相对基座坐标系O可进行独立自由运动的数量 自由度的计算十分简洁 例如一个物体如正方体 xff0c 取其中心点作为参照点 xff0c 若该参
  • 匿名管道(pipe)和命名管道(mkfifo)

    匿名管道 xff08 pipe xff09 和命名管道 xff08 mkfifo xff09 进程间通信必须通过内核提供的通道 1 匿名管道 匿名管道通过打开的文件描述符来标识的 用于具有亲缘关系间进程之间的通信 int pipe xff0
  • 《Hadoop基础教程》读后感

    Hadoop一直是我想学习的技术 xff0c 正巧最近项目组要做电子商城 xff0c 我就开始研究Hadoop xff0c 虽然最后鉴定Hadoop不适用我们的项目 xff0c 但是我会继续研究下去 xff0c 技多不压身 Hadoop基础
  • WSL2安装CentOS7和Xfce4桌面

    由于工作和学习需要 xff0c 需要在WSL中安装和配置CentOS7系统 1 安装和升级WSL 安装和升级WSL方法可看微软官方教程 本人是将电脑中的WSL升级到了WSL2 2 下载安装CentOS镜像 首先需要下载CentOS7镜像 x
  • 安装MySQL5.7没设置密码解决方法

    我在WSL的CentOS7系统中安装MySQL5 7后发现全程都没设置密码 为了加强安全性 xff0c MySQL5 7为root用户随机生成了一个密码 xff0c 在error log中 xff0c 关于error log的位置 xff0
  • WSL的CentOS7报错Failed to get D-Bus connection: Operation not permitted解决办法

    WSL的CentOS7使用systemctl和service命令时报错Failed to get D Bus connection Operation not permitted 解决办法是更换systemctl文件 首先备份systemc
  • Go的常用设计模式

    好记性不如烂笔头 xff0c 学习编程的最好方式就是自己把代码动手敲一遍 1 策略模式 xff08 strategy xff09 在实际应用中 xff0c 我们对不同的场景要采取不同的应对措施 xff0c 也就是不同的策略 定义一个接口 x
  • Go语言使用golang-jwt/jwt/v4进行JWT鉴权

    文章目录 1 什么是JWT2 JWT的数据结构2 1 Header2 2 Payload2 3 Signature2 4 Base64URL 3使用JWT安装生成Token 参考 xff1a 最近写的项目中用到了JWT鉴权 xff0c 因此

随机推荐

  • 安装zsh并配置oh my zsh,让你的Linux终端也有爆爽体验

    安装zsh并配置oh my zsh 让你的Linux终端也有爆爽体验 xff01 Oh My Zsh 是基于 zsh 命令行的一个扩展工具集 xff0c 提供了丰富的扩展功能 下载安装zsh设置默认shell安装Oh My Zsh安装插件启
  • WSL2 Ubuntu20.04安装xfce4桌面和中文输入法

    目录 WSL2安装xfce4配置 zshrc安装VcXsrv启动桌面安装中文输入法 WSL2 首先需要开启wsl并且版本升级为wsl2 xff0c 然后microsoft store中搜索ubuntu xff0c 安装ubuntu20 04
  • Oracle11g下载地址

    网上链接大多挂了 xff0c 下面这个链接实测可以下载 Oracle11g下载地址
  • 关于元学习收集资料杂乱整理2021.9.11

    元学习论文 xff1a https github com rootlu MetaLearning Papers 应用于 NLP 领域的 Meta few shot 学习方法的最新论文列表 https github com ha lins M
  • C语言:字符数组的结束标志,输入输出,使用字符串处理函数等

    文章目录 字符串和字符串结束标志字符数组的输入输出用scanf函数输入 使用字符串处理函数puts函数 输出字符串的函数gets函数 输入strcat函数 字符串连接符strcpy和strncpy函数 字符串复制函数strcmp函数 字符串
  • fedora20/21 中文输入法 记录

    有了笔记后 xff0c 好久都不来写了 xff0c 罪过 这次是fedora下使用搜狗输入法 众所周知 xff0c Linux下的中文输入法是很难调教的 xff0c 可不像Windows下 xff0c 下载输入法然后安装就行 Linux下的
  • C语言-指针了解

    文章目录 一 什么是指针 xff1f 二 为什么要使用指针 xff1f 二 指针的声明与应用1 字符指针2 指针与数组2 1指针与数组的关系2 2指针数组2 3指针数组2 4数组名 VS 数组名2 5 数组传参 指针传参2 5 1 一维数组
  • 【机器人动力学】

    综述 机器人动力学把机器人分为两类 xff1a 移动机器人 关节机器人 在移动机器人的运动规划中 xff0c 机器人往往是以一个 点 存在 xff0c 对移动机器人的规划 xff0c 更多的是使用各种搜索算法 xff0c 在已经构建好的地图
  • Android实现多国语言适配:app名称随系统的语言而更换

    Android实现多国语言适配 xff1a app名称随系统的语言而更换 设备 引擎 xff1a Mac xff08 11 6 xff09 cocos 开发工具 xff1a Android studio 4 1 2 开发语言 xff1a j
  • 英伟达jetson硬件(NX,nano,AGX,TX1,TX2)通用开机自动开启风扇教程

    英伟达jetson硬件通用的风扇开机自启动教程 1 安装jetson stats2 重启硬件 xff0c 然后进入jtop3 操作设置4 重启测试风扇是否自动开启 1 安装jetson stats xff08 先安装一下pip xff09
  • 无传感器永磁同步电机电机自适应自抗扰ADRC控制策略

    提示 xff1a 无速度传感器永磁同步电机电机自适应自抗扰控制策略 xff0c 在2022年10月12日晚上23 xff1a 00写完的 人生的路真的很难走 xff0c 身边也发生了很多不好的事情 xff0c 关于一些研究成果和simuli
  • 【永磁同步电机转速环ADRC电流环ADRC双环无传感器控制】

    永磁同步电机转速环ADRC电流环ADRC无传感器控制 原理 仿真 波形 总结转速环 电流环ADRC原理仿真框图仿真波形总结 原理 仿真 波形 总结 转速环 电流环ADRC原理 1 转速环ADRC ADRC具体的文章可以参考其他的文献观看 x
  • 学技术就要查看官方文档

    1 是什么 官方发布的文档 2 为什么要看 对于官方文档 xff0c 一般而言都是英文 xff0c 其实对于程序员而言 xff0c 常用的英文也就那么多 xff0c 也不是很复杂 一般而言 xff0c 只要使用的东西不是太小众 xff0c
  • 开始学习SONiC

    开始学习SONiC SONiC资源汇总 SONiC资源汇总 名正才能言顺 xff0c SONiC的i是要小写的 AZURE SONIC和SONIC Utility Software for Open Networking in the Cl
  • 2020年12月30日 当SONiC遇到P4

    当SONiC遇到P4 SONiC P4 是SONiC中运行的P4虚拟交换机 xff0c 当前的SONiC P4是一个docker image xff0c 可以运行在任意的docker环境中 看看SONiC和P4能碰撞出什么火花 SONiC的
  • 2021-01-07 SONiC系统管理1 SONiC Management framework

    SONiC系统管理1 SONiC Management framework SONiC系统提供多种管理接口 xff0c 包括CLI人机接口 xff0c REST RESTCONF接口 xff0c gNMI接口和SNMP接口 xff0c SN
  • svn diff 使用 vimdiff代替,提高阅读性

    可能是被Win下的比较软件给养出的恶习 xff0c 所以一直很难习惯 nux下文本diff的比较效果 xff0c 尤其是频繁的使用svn diff 简直会让我对程序的理解能力直线下降 终于发现 xff0c 其实svn已经提供了这种切换dif
  • 2021-01-16 SONiC系统管理9 TPID配置

    SONiC系统管理9 TPID配置 SONiC TPID配置 从SONiC VLAN YANG里面没有看到有TPID的配置能力 xff0c VLAN Range在SONiC VLAN YANG里面也没有 xff0c 二层转发功能的增强让SO
  • 2021-01-17 SONiC系统管理12 零接触部署ZTP

    2021 01 16 SONiC系统管理12 零接触部署ZTP SONiC系统管理12 零接触部署ZTP SONiC系统支持基于DHCP协议Option 67的ZTP零接触部署 SONiC系统启动以后 xff0c 系统自动在所有UP起来的端
  • 2021-02-02 SONiC系统管理 18配置文件格式

    SONiC系统管理 18 配置文件格式 前面说到了SONiC系统启动时通过读取初始配置文件的内容来配置系统 xff0c SONiC系统默认初始配置文件的位置在 etc sonic startup config 文件内容再进一步指示各种不同类