DragonFlow导读(by quqi99)
作者:张华 发表于:2015-07-01
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
( http://blog.csdn.net/quqi99)
self,
datapath,
msg,
in_port_data,
pkt_eth,
pkt_ipv4,
gateway_port_data,
dst_port_data,
cookie_filter,
):
"""Install the l3 forwarding flows.
:param datapath: Datapath to install into
:param msg: Message to act upon
:param in_port_data: The port that the message arrived in
:type in_port_data: PortData
:param pkt_eth: The ethernet part of the packet
:param pkt_ipv4: The ipv4 part of the packet
:param gateway_port_data: The gateway port through which the packet
would have been routed
:type gateway_port_data: PortData
:param dst_port_data: The destination port.
:type dst_port_data: PortData
:param cookie_filter: The cookie to attach to all flows
:type cookie_filter: CookieFilter
"""
dst_port_dp_id = dst_port_data.local_datapath_id
dst_seg_id = dst_port_data.segmentation_id
in_port = in_port_data.local_port_number
dst_port = dst_port_data.local_port_number
src_seg_id = in_port_data.segmentation_id
cookie = cookie_filter.to_cookie()
if dst_port_dp_id == datapath.id:
# The dst VM and the source VM are on the same compute Node
# Send output flow directly to port, use the same datapath
actions = self.add_flow_subnet_traffic(
datapath,
self.L3_VROUTER_TABLE,
MEDIUM_PRIORITY_FLOW,
in_port,
src_seg_id,
pkt_eth.src,
pkt_eth.dst,
pkt_ipv4.dst,
pkt_ipv4.src,
gateway_port_data.mac_address,
dst_port_data.mac_address,
dst_port,
cookie=cookie,
)
# Install the reverse flow return traffic
self.add_flow_subnet_traffic(
datapath,
self.L3_VROUTER_TABLE,
MEDIUM_PRIORITY_FLOW,
dst_port,
dst_seg_id,
dst_port_data.mac_address,
gateway_port_data.mac_address,
pkt_ipv4.src,
pkt_ipv4.dst,
pkt_eth.dst,
in_port_data.mac_address,
in_port,
cookie=cookie,
)
self.handle_packet_out_l3(datapath, msg, dst_port, actions)
else:
# The dst VM and the source VM are NOT on the same compute node
# Send output to br-tun patch port and install reverse flow on the
# dst compute node
remote_switch = self.dp_list.get(dst_port_dp_id)
local_switch = self.dp_list.get(datapath.id)
actions = self.add_flow_subnet_traffic(
datapath,
self.L3_VROUTER_TABLE,
MEDIUM_PRIORITY_FLOW,
in_port,
src_seg_id,
pkt_eth.src,
pkt_eth.dst,
pkt_ipv4.dst,
pkt_ipv4.src,
gateway_port_data.mac_address,
dst_port_data.mac_address,
local_switch.patch_port_num,
dst_seg_id=dst_seg_id,
cookie=cookie,
)
# Remote reverse flow install
self.add_flow_subnet_traffic(
remote_switch.datapath,
self.L3_VROUTER_TABLE,
MEDIUM_PRIORITY_FLOW,
dst_port,
dst_seg_id,
dst_port_data.mac_address,
gateway_port_data.mac_address,
pkt_ipv4.src,
pkt_ipv4.dst,
pkt_eth.dst,
in_port_data.mac_address,
remote_switch.patch_port_num,
dst_seg_id=src_seg_id,
cookie=cookie,
)
self.handle_packet_out_l3(remote_switch.datapath,
msg, dst_port, actions)
def handle_packet_out_l3(self, datapath, msg, in_port, actions):
data = None
parser = datapath.ofproto_parser
ofproto = datapath.ofproto
if msg.buffer_id == ofproto.OFP_NO_BUFFER:
data = msg.data
out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id,
in_port=in_port, actions=actions, data=data)
datapath.send_msg(out)
DragonFlow导读(by quqi99)相关推荐
- Vmware中的虚拟网络 ( by quqi99 )
Vmware中的虚拟网络 ( by quqi99 ) 作者:张华 发表于:2013-03-27 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http: ...
- settimeout需要清除吗_【期刊导读】新证据:HBsAg水平极低的非活动性HBsAg携带者经聚乙二醇干扰素治疗24周, HBsAg清除率高达83.3%...
编者按:目前指南并没有推荐非活动性HBsAg携带者(IHC)进行抗病毒治疗,但在长期随访中发现有IHC仍存在一定的复发和肝癌风险,而获得HBsAg清除会将慢乙肝患者肝癌风险降至最低.因此许多IHC会有 ...
- 《C陷阱与缺陷》一导读
前 言 C陷阱与缺陷 对于经验丰富的行家而言,得心应手的工具在初学时的困难程度往往要超过那些容易上手的工具.刚刚接触飞机驾驶的学员,初航时总是谨小慎微,只敢沿着海岸线来回飞行,等他们稍有经验就会明白这 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(1月17日-1月23日)
上周微软Silverlight团队发布"微软发布Silverlight Native Extensions 1.0 - 扩展OOB应用功能",对于Silverlight开发人员而言 ...
- 关于计算机视觉的那些论文 | CCF推荐论文导读
目 录 1 Quality Evaluation for Image Retargeting With Instance Semantics 2 PFAN++: Bi-Directional Imag ...
- 转:经典论文翻译导读之《Google File System》
首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 -首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源 经典论文翻译导读之<Google ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(10月1日-10月15日)
分享Silverlight/WPF/Windows Phone一周学习导读(10月1日-10月15日) 本周Silverlight学习资源更新: [Silverlight入门系列]ListboxIte ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)
分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日) 本周Silverlight学习资源更新 Silverlight 定位 niejunhua [学习 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日)
分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日) 本周Silverlight学习资源更新: Silverlight Tools 4安装时的错误提示 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(3月1日-3月5日)
休假一个月,没有更新Silverlight/WPF/Windows Phone学习导读.从本周开始继续分享每周最新的Silverlight/WPF/Windows Phone开发学习导读. 本周Sil ...
最新文章
- python函数都有啥_什么是python函数
- [译]通过使用Chrome的开发者工具来学习JavaScript
- 记一次网易前端实习面试
- Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的下载算法的解决办法
- powertool 使用学习总结
- 自己设计java流程审核_关于工作流引擎取回审批的设计方案与实现过程
- 计算器的程序代码java_求用JAVA编写的计算器程序代码
- Java并发编程实战~Lock
- 自定义TBE算子入门,不妨从单算子开发开始
- html ios按钮,ios样式开关按钮jQuery插件
- android屏幕亮度测试,屏幕亮度与可视角度测试_手机Android频道-中关村在线
- 统计学习方法读书笔记2-极大似然估计与梯度下降法
- HDOJ 1465 不容易系列之一
- oracle ntile函数,Oracle分析函数ntile
- 2个抖音工程师搞出新工具,意外风靡字节内部,项目经理用上安静多了,程序员不骗程序员...
- iOS开发 动画(Animation)图片360度不停旋转
- 去掉数组中重复出现元素的算法
- ffmpeg运行在服务器上,如何在脱离流媒体服务器的时候使用ffmpeg 监测.m3u8直播视频流的状态?...
- 如何通俗地解释欧拉公式(e^πi+1=0)
- mybatis-config.xml配置文件中“http://mybatis.org/dtd/mybatis-3-config.dtd”报错