ovs处理openflow消息的流程
来源:互联网 发布:ae mac破解版下载 编辑:程序博客网 时间:2024/06/05 18:57
OVS处理各个openflow消息的具体代码在 ofproto/ofproto.c 中:
static enum ofperrhandle_openflow__(struct ofconn *ofconn, const struct ofpbuf *msg){ const struct ofp_header *oh = msg->data; enum ofptype type; enum ofperr error; error = ofptype_decode(&type, oh); if (error) { return error; } switch (type) { /* OpenFlow requests. */ case OFPTYPE_ECHO_REQUEST: return handle_echo_request(ofconn, oh); case OFPTYPE_FEATURES_REQUEST: return handle_features_request(ofconn, oh); case OFPTYPE_GET_CONFIG_REQUEST: return handle_get_config_request(ofconn, oh); case OFPTYPE_SET_CONFIG: return handle_set_config(ofconn, oh); case OFPTYPE_PACKET_OUT: return handle_packet_out(ofconn, oh); case OFPTYPE_PORT_MOD: return handle_port_mod(ofconn, oh); case OFPTYPE_FLOW_MOD: return handle_flow_mod(ofconn, oh); case OFPTYPE_BARRIER_REQUEST: return handle_barrier_request(ofconn, oh); /* OpenFlow replies. */ case OFPTYPE_ECHO_REPLY: return 0; /* Nicira extension requests. */ case OFPTYPE_ROLE_REQUEST: return handle_role_request(ofconn, oh); case OFPTYPE_FLOW_MOD_TABLE_ID: return handle_nxt_flow_mod_table_id(ofconn, oh); case OFPTYPE_SET_FLOW_FORMAT: return handle_nxt_set_flow_format(ofconn, oh); case OFPTYPE_SET_PACKET_IN_FORMAT: return handle_nxt_set_packet_in_format(ofconn, oh); case OFPTYPE_SET_CONTROLLER_ID: return handle_nxt_set_controller_id(ofconn, oh); case OFPTYPE_FLOW_AGE: /* Nothing to do. */ return 0; case OFPTYPE_FLOW_MONITOR_CANCEL: return handle_flow_monitor_cancel(ofconn, oh); case OFPTYPE_SET_ASYNC_CONFIG: return handle_nxt_set_async_config(ofconn, oh); /* Statistics requests. */ case OFPTYPE_DESC_STATS_REQUEST: return handle_desc_stats_request(ofconn, oh); case OFPTYPE_FLOW_STATS_REQUEST: return handle_flow_stats_request(ofconn, oh); case OFPTYPE_AGGREGATE_STATS_REQUEST: return handle_aggregate_stats_request(ofconn, oh); case OFPTYPE_TABLE_STATS_REQUEST: return handle_table_stats_request(ofconn, oh); case OFPTYPE_PORT_STATS_REQUEST: return handle_port_stats_request(ofconn, oh); case OFPTYPE_QUEUE_STATS_REQUEST: return handle_queue_stats_request(ofconn, oh); case OFPTYPE_PORT_DESC_STATS_REQUEST: return handle_port_desc_stats_request(ofconn, oh); case OFPTYPE_FLOW_MONITOR_STATS_REQUEST: return handle_flow_monitor_request(ofconn, oh); case OFPTYPE_HELLO: case OFPTYPE_ERROR: case OFPTYPE_FEATURES_REPLY: case OFPTYPE_GET_CONFIG_REPLY: case OFPTYPE_PACKET_IN: case OFPTYPE_FLOW_REMOVED: case OFPTYPE_PORT_STATUS: case OFPTYPE_BARRIER_REPLY: case OFPTYPE_DESC_STATS_REPLY: case OFPTYPE_FLOW_STATS_REPLY: case OFPTYPE_QUEUE_STATS_REPLY: case OFPTYPE_PORT_STATS_REPLY: case OFPTYPE_TABLE_STATS_REPLY: case OFPTYPE_AGGREGATE_STATS_REPLY: case OFPTYPE_PORT_DESC_STATS_REPLY: case OFPTYPE_ROLE_REPLY: case OFPTYPE_FLOW_MONITOR_PAUSED: case OFPTYPE_FLOW_MONITOR_RESUMED: case OFPTYPE_FLOW_MONITOR_STATS_REPLY: default: return OFPERR_OFPBRC_BAD_TYPE; }}
http://blog.csdn.net/vonzhoufz/article/details/29190281
2 0
- ovs处理openflow消息的流程
- POX学习笔记:POX接收OpenFlow消息的处理流程分析
- OVS+openflow+KVM
- 消息的处理流程
- OVS datapath模块分析:packet处理流程
- OVS datapath模块分析:packet处理流程
- DELPHI消息的处理流程
- DELPHI消息处理的流程
- zigbee消息的处理流程
- ovs-dpdk和ovs-kernel的checksum处理
- windows的窗口消息.处理流程本质.
- 贸易时代的消息处理流程
- Handler延时处理消息的流程
- WM_DRAWITEM消息处理流程
- 消息处理流程
- MFC消息处理流程
- Cocoa消息处理流程
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Populatio
- Android 获取通讯录联系人
- 内存泄露检测之: Valgrind简单用法
- mfs分布式管理系统
- Oracle的导入导出(备份与恢复)
- Linux中断(interrupt)子系统之三:中断流控处理层
- ovs处理openflow消息的流程
- Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
- C++格式化输出
- Linux中断(interrupt)子系统之五:软件中断(softIRQ)
- 【LeetCode】Word Search
- 如何用cmd关闭打开的程序
- 数据结构-----约瑟夫环问题
- 虚拟机内存不够时,导致的机器启不来解决方法
- ubuntu上安装lamp服务