OpenFlow1.3.3 学习记录(持续更新)
OpenFlow1.3.3 学习记录(持续更新)
正在学习OpenFlow1.3,该篇笔记将日常更新,主要内容大致为官方文档的总结与翻译。
交换机组件
按照优先级顺序进行包匹配,如果匹配到流表项,则执行流表项中绑定的Instructions;如果没有匹配到流表项,将根据table-miss的配置进行操作,转发到controller,drop,next flow table。Instruction包括:actions或者修改流水线配置。
OpenFlow Ports
- Standard Ports
 - Physical Ports
 - Reserved Ports
- ALL
- 除了输入端口和设置OFPPC_NO_FWD端口
 - 只能作为out_port
 
 - CONTROLLER
- out_port时:被封装packet-in
 
 - TABLE
- 仅在作为packet_out中的output action中有效
 
 - IN_PORT
- only: out_port
 
 - ANY
- 没有指定端口时代表特殊含义;
 - 不能作为in_port, out_port
 
 - NORMAL
 FLOOD
端口改变
Packet转发到不存在的端口,将执行drop操作;对于组表同样,但组表的表现可能会受liveness checking影响。
 - ALL
 
当端口状态改变时,最好删除相关的流表项。
OpenFlow流表
Pipeline Processing
交换机分两类:
- OpenFlow-only
 - OpenFlow-hybrid 支持传统交换机和OpenFlow交换机操作
 
流表至少有一个,从0开始,流水线从第一个流表开始处理。当匹配到流表项,则开始执行instruction设置的操作。流表项可以将一个包指向到另外一个流表项(GotoTable),但只能向前不能回退。最后一个流表项,不能被指向到其他流表项。
如果没有匹配到流表项,根据table-miss流表项进行操作。如果没有table-miss设置,默认drop。

Flow Table
| Match Fields | Piority | Counters | Instructions | Timeouts | Cookie | Flags | 
|---|
- couters: 当匹配到包进行更新
 
未完,待续
OpenFlow1.3.3 学习记录(持续更新)的更多相关文章
- Arduino语言学习记录(持续更新)
		
几天前某宝买了一套,这几天没工夫.今天开始学学这个“玩具”. 1.Arduino的变量数据类型: 数据类型 数据类型 RAM 范围 void keyword N/A N/A boolean 1 by ...
 - 【pwn】学pwn日记——栈学习(持续更新)
		
[pwn]学pwn日记--栈学习(持续更新) 前言 从8.2开始系统性学习pwn,在此之前,学习了部分汇编指令以及32位c语言程序的堆栈图及函数调用. 学习视频链接:XMCVE 2020 CTF Pw ...
 - C#技巧记录——持续更新
		
作为一名非主修C#的程序员,在此记录下学习与工作中C#的有用内容,持续更新 对类型进行约束,class指定了类型必须是引用类型,new()指定了类型必须具有一个无参的构造函数 where T : cl ...
 - Pig基础学习【持续更新中】
		
*本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...
 - [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)
		
持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...
 - git学习——记录每次更新到仓库
		
记录每次更新到仓库 工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪.已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或 ...
 - Linux学习历程(持续更新整理中)
		
1.文件目录操作命令 (1) ls 显示文件和目录列表 a ls -l 显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件' 显示指定目录 ...
 - 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
		
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
 - Java同步学习(持续更新)
		
在需要考虑线程安全性的场合,可以考虑以下五种方式来实现线程的安全性: 1.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, ...
 
随机推荐
- .NET Reflector注册问题
			
reflector工具不错, 终于8.x了,也可以注册了,但是不小心注册成standard版本了,但vs中无法使用,于是各种删注册表,后来找到何英涛的解决方案 下面介绍一个Reflector很坑的一个 ...
 - centos7 docker 使用pipework 做虚拟机
			
网卡配置文件 及 bridge的静态配置 centos7 Bridge配置 [root@mon-1 ~]# cd /etc/sysconfig/network-scripts/ [root@mon- ...
 - SuperSocket.ClientEngine介绍
			
项目地址:https://github.com/kerryjiang/SuperSocket.ClientEngine 其中需要引入的SuperSocket.ProtoBase项目:SuperSock ...
 - Mininet自定义网络拓扑
			
在Mininet上的网络拓扑有两种方式 第一种 用mininet自带的miniedit可视化工具,在mininet/mininet/examples/的目录下的一个miniedit.py,运行这个文件 ...
 - [零基础学JAVA]Java SE面向对象部分.面向对象基础(05)
			
1.继承 2.多态 3.final 4.重载与覆写 5. this/super 6.抽象类 7.接口 java: class Person{ private String name; priva ...
 - eclipse 检测App的内存占用和泄漏【转载】
			
前段时间开发的Android应用,每次都是在运行了半个小时左右后突然挂掉了,很是莫名其妙,也不知道哪里出了问题,后来一步步排查,发现问题出在JNI层,一个被频繁调用的函数分配的内存忘记释放,导致内存泄 ...
 - java学习笔记 --- 多线程(多线程的控制)
			
1.线程休眠 public static void sleep(long millis) public class ThreadSleep extends Thread { @Override ...
 - Eclipse查看.properties文件中文乱码
			
在中文操作系统中,Eclipse中的Java类型文件的编码的默认设置是GBK,但是对Properties资源文件的编码的默认设置是ISO-8859-1.所以编辑Java文件中的中文不会出现问题,但编辑 ...
 - 苹果编程语言Swift简介
			
Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,The Swift Programming Language的原话: Swift is a new programming la ...
 - Android开发之自己定义TabHost文字及背景(源码分享)
			
使用TabHost 能够在一个屏幕间进行不同版面的切换,而系统自带的tabhost界面较为朴素,我们应该怎样进行自己定义改动优化呢 MainActivity的源码 package com.dream. ...