位置:/home/wasdns/p4factory/targets/l2_switch/p4src

命令:

cd /home/wasdns/p4factory/targets/l2_switch/p4src
p4-graphs l2_switch.p4

l2_switch.p4:

//uncomment to enable openflow
//#define OPENFLOW_ENABLE #ifdef OPENFLOW_ENABLE
#include "openflow.p4"
#endif /* OPENFLOW_ENABLE */ header_type ethernet_t {
fields {
dstAddr : 48;
srcAddr : 48;
etherType : 16;
}
} header_type intrinsic_metadata_t {
fields {
mcast_grp : 4;
egress_rid : 4;
mcast_hash : 16;
lf_field_list: 32;
}
} parser start {
return parse_ethernet;
} header ethernet_t ethernet;
metadata intrinsic_metadata_t intrinsic_metadata; parser parse_ethernet {
extract(ethernet);
#ifdef OPENFLOW_ENABLE
return select(latest.etherType) {
ETHERTYPE_BF_FABRIC : parse_fabric_header;
default : ingress;
}
#else
return ingress;
#endif /* OPENFLOW_ENABLE */
} action _drop() {
drop();
} action _nop() {
} #define MAC_LEARN_RECEIVER 1024 field_list mac_learn_digest {
ethernet.srcAddr;
standard_metadata.ingress_port;
} action mac_learn() {
generate_digest(MAC_LEARN_RECEIVER, mac_learn_digest);
} table smac {
reads {
ethernet.srcAddr : exact;
}
actions {mac_learn; _nop;}
size : 512;
} action forward(port) {
modify_field(standard_metadata.egress_spec, port);
} action broadcast() {
modify_field(intrinsic_metadata.mcast_grp, 1);
} table dmac {
reads {
ethernet.dstAddr : exact;
}
actions {
forward;
broadcast;
#ifdef OPENFLOW_ENABLE
openflow_apply;
openflow_miss;
#endif /* OPENFLOW_ENABLE */
}
size : 512;
} table mcast_src_pruning {
reads {
standard_metadata.instance_type : exact;
}
actions {_nop; _drop;}
size : 1;
} control ingress {
#ifdef OPENFLOW_ENABLE
apply(packet_out) {
nop {
#endif /* OPENFLOW_ENABLE */
apply(smac);
apply(dmac);
#ifdef OPENFLOW_ENABLE
}
} process_ofpat_ingress ();
#endif /* OPENFLOW_ENABLE */
} control egress {
if(standard_metadata.ingress_port == standard_metadata.egress_port) {
apply(mcast_src_pruning);
} #ifdef OPENFLOW_ENABLE
process_ofpat_egress();
#endif /*OPENFLOW_ENABLE */
}

生成图片:

2016/9/26

使用 p4-graphs 命令将p4程序依赖关系图形化的更多相关文章

  1. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)

    Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea   ...

  2. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图

    Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项 ...

  3. Ambari服务依赖关系图生成脚本

    1. 生成服务依赖关系 #!/usr/bin/python import sys import commands import json def genDependString(ip): url=&q ...

  4. C/C++源代码的Include依赖关系图

    前一篇博文中我曾仔细介绍过如何查看C/C++代码的依赖项关系图,在这篇文章中我将会介绍如何使用Visualization and Modeling Feature Pack 工具包,查看C/C++源代 ...

  5. rpmgraph - 显示 RPM 软件包依赖关系图

    SYNOPSIS rpmgraph PACKAGE_FILE ... DESCRIPTION rpmgraph 使用 PACKAGE_FILE 参数来产生一个软件包依赖关系图.每个 PACKAGE_F ...

  6. 教你如何一键反编译获取任何微信小程序源代码(图形化界面,傻瓜式操作)

    一键获取微信小程序源代码 Tips: 一键获取微信小程序源码, 使用了C#加nodejs制作 直接解压在D盘根目录下后就可以使用 将小程序文件放到 wxapkg目录下3 这个目录下有一些demo 可以 ...

  7. MyBatis源码分析(1)——整体依赖关系图

    后续补充更新

  8. SpringMvc+Spring+Mybatis的jar包依赖关系图

  9. 源码分析:静态分析 C 程序函数调用关系图

    http://www.tinylab.org/callgraph-draw-the-calltree-of-c-functions/

随机推荐

  1. install kubernetes dashboard 安装 kubernetes dashboard 详细

    参考: http://www.bubuko.com/infodetail-2242562.html http://www.cnblogs.com/zhenyuyaodidiao/p/6500897.h ...

  2. ATDD和TDD的区别是什么?

    最近看到一个新名词"ATDD",全称"Acceptance Test Driven Development ",中文称"验收测试驱动开发". ...

  3. tortoiseSVN如何发现和解决冲突?

    版本冲突原因: 假设A.B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns ...

  4. 使用Spring报错:No default constructor found;

    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error ...

  5. ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)

    获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $ca ...

  6. 树链剖分+离散+扫描(HDU5044)

    Tree Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

  7. json包的不同导致结果不同

    json包的不同导致结果不同 引入如下json jar包 import org.json.JSONArray; 2 import org.json.JSONObject; 代码: JSONObject ...

  8. Spring Security使用心得

    某天,你的客户提出这样一个需求,在点击购买商品的时,如果用户没有注册,并且用户没有账号,这时用户去创建账户,然后要直接返回到想购买商品的付款页面.你会该如何基于Spring Security实现? S ...

  9. SQL Server 存储过程生成流水号

    SQL Server利用存储过程生成流水号 USE BiddingConfig SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO -- =========== ...

  10. 焦作网络赛B-Mathematical Curse【dp】

    A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematics ...