sonic cli application

1. 基本流程

这个的主要流程比较简单,直接通过代码来看。
config acl add table的命令处理入口:
在这里插入图片描述

基于上述代码分析cli命令与redis数据库的交互过程实际上就只有两个步骤:
在这里插入图片描述

命令行输入config acl add ...命令,处理入口位于src/sonic-utilities/config/main.py:table():

  • 解析命令行参数
  • 连接config_db数据库,向config_db的acl_table表中写入数据,索引为:ACL_TABLE|table_name – 这个过程不会对参数信息做任何检查与验证

创建的ACL_TABLE表在CONFIG_DB中,表信息如下:
在这里插入图片描述

在ACL_TABLE表中只有四个字段:type、policy_desc、ports、stage

1.2 函数调用

下图是从src/sonic-utilities/config/main.py:table()开始的函数调用,调用过程比较长,下面只分析一些主要部分
在这里插入图片描述

2. 命令解析

在这里插入图片描述

解析从命令获取的参数,并且构建成字典格式:

  1. table_type不做任何检查,直接写入字典
  2. description只做判空检查,默认为table_name
  3. ports只做判空检查,默认为所有的ports – 从config_db的port表中获取所有ports
  4. stage只做判空检查,默认为ingress
  5. 最终字典形式为:
    table_info{"type":"","policy_desc":"","ports":"","stage":""}
    • table_name: 必要的参数
    • table_type: 必要的参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值