25 lines
1.6 KiB
Plaintext
25 lines
1.6 KiB
Plaintext
实现内容:
|
||
协议编号 - 协议类型 - 子协议类型 - 描述
|
||
1 - OFPT_FEATURES_REQUEST=5 - 无 - 获取交换机支持多少流表
|
||
2 - OFPT_GET_CONFIG_REQUEST=7 - 无 - 查询交换机配置
|
||
3 - OFPT_MULTIPART_REQUEST=18 - OFPMP_DESC=0 - 获取交换机版本信息,制造商家等信息
|
||
4 - OFPT_MULTIPART_REQUEST=18 - OFPMP_FLOW=1 - 获取交换机流表信息
|
||
5 - OFPT_MULTIPART_REQUEST=18 - OFPMP_AGGREGATE=2 - 获取交换机总流量统计
|
||
6 - OFPT_MULTIPART_REQUEST=18 - OFPMP_TABLE=3 - 获取交换机流统计表,动作,时间等
|
||
7 - OFPT_MULTIPART_REQUEST=18 - OFPMP_PORT_STATS=4 - 获取交换机端口计数统计
|
||
8 - OFPT_MULTIPART_REQUEST=18 - OFPMP_GROUP_FEATURES=8 - 获取交换机组特征
|
||
9 - OFPT_MULTIPART_REQUEST=18 - OFPMP_PORT_DESC=13 - 获取交换机端口信息
|
||
10 - OFPT_PACKET_OUT=13 - 无 - 处理控制器报文,根据action动作输出
|
||
11 - OFPT_FLOW=14 - ADD=0 - 添加交换机流表规则
|
||
12 - OFPT_ROLE_REQUEST=24 - 无 - 配置交换机角色
|
||
|
||
|
||
openflow数据结构: ofp_v4.h
|
||
|
||
流表规则数据结构路径: fast_struct.h
|
||
|
||
OUTPUT调用发送函数: void nms_exec_action(u32 inport,u32 outport,struct eth_header *eth,int len,int hit_idx)/*最后参数-1表示未携带查表命中信息,此处仅做发送*/ inport 接收端口号 outport 输出端口号 eth 以太网报文 len 报文长度 hit_idx 命中消息类型
|
||
|
||
Flow_add调用添加函数: 新增一条规则,要求用户输入完整的规则数据结构,包括规则字段,掩码和相应动作,返回值为存储当前规则的索引值 int fast_add_rule(struct fast_rule *rule)
|
||
|