基于88E6095的链路冗余协议开发(三)

VLAN配置

链路冗余协议支持两种运行方式:
1. 基于物理端口进行计算,不考虑VLAN功能实现,例如STP,RSTP
2. 基于VLAN中的端口进行计算,例如MSTP
如果我们要实现基本VLAN模式的链路冗余协议,在协议配置之前,需要确定端口的VLAN配置信息。
VLAN的功能参考网络资料及802.1Q说明文档,该章节不对VLAN功能本身进行说明,主要介绍VLAN功能在88E6095的支持和应用。
88E6095支持两种VLAN模式,分别为3.5.6 Port Based VLANs和3.5.7 802.1Q VLANs。我们主要对802.1Q VLANs的实现进行介绍。
802.1Q VLAN主要支持一下几个方面的功能:
1. vlan优先级
2. 端口配置

3. 端口stp状态

功能实现

88E6095通过VLAN Translation Unit Operations接口对802.1Q VLANs进行配置,VTU通过一组VTU配置寄存器,组成VTU Entry对VTU database进行读写,参考88E6095的3.5.11 VLAN Translation Unit Operations。

VTU提供的配置寄存器如下:


其中VTU Operation寄存器定了VTU支持的操作功能,如下:


由VTU register的内容组成一条VTU Entry,格式如下:


其中各字段内容说明如下:




对各字段的简单说明如下:
MemberTag

用来指定当前端口是否包含在该VID指定的VLAN中。如果包含在该VLAN中,则可以指定该port对vlan tag的操作模式,包括四种状态:

00:port在vlan内,转发报文不修改报文的vlan tag状态

01:port在vlan内,发送报文剥离vlan tag

02:port在vlan内,发送报文添加vlan tag

03:port不包含在该vlan内


PortState:

用来配置vlan中port的stp状态,该功能实现了对基于vlan的链路冗余协议的支持。

接口函数

函数名称:

vlan_add

函数功能:

添加端口到指定vlan。

(该函数当前添加指定端口按照00(port在vlan内,转发报文不修改报文的vlan tag状态)进行添加。后期需要根据功能需求对接口函数进行修改。

Vlan添加端口一般不使用00模式,主要使用01(utag)和02(tag)模式进行添加。其中一个端口使用utag模式只可以添加一个vlan,使用tag模式可以添加多个vlan。

当前函数原型为void vlan_add(U16 vid, U16 port)。

建议后期修改为int vlan_add(U16 vid, U16 utag_map, U16 tag_map)实现可以参考vlan_add的当前实现进行修改。)

函数名称:

vlan_read

函数功能:

根据指定的VID读取VTU Entry。


函数名称:

vlan_delete

函数功能:

根据指定的VID删除VLAN。

(该函数功能当前未实现,根据vlan_add的代码及88E6095文档3.5.11说明进行操作)


函数名称:

Set_vlan_port_status

函数功能:

设置指定vlan中指定端口的stp状态。


该函数当前未实现,建议实现原型如下:

int Set_vlan_port_status(U16 vid, U16 port, U16 status)


在链路冗余协议中,在使用vlan base模式时,会使用多个vlan组成一个stg,协议状态机基于stg进行计算和配置操作。

使用88E6095实现是,需要对Set_vlan_port_status函数进行封装,根据vlan和协议配置,软件层实现stg层实现,包括以下函数。

Int stg_vlan_add(U16 stg, U16 vid)

Int stg_vlan_del(U16 stg, U16 vid)

int Set_stg_port_status(U16 vid, U16 port, U16 status)

加入一个stg的vlan,原则上要求添加的port相同(tag状态不需要相同),在执行Set_stg_port_status操作时,对加入的stg的vlan进行遍历,然后调用Set_vlan_port_status进行设置。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值