zoukankan      html  css  js  c++  java
  • P4学习:统计功能

    https://www.cnblogs.com/soul-stone/p/9029480.html

    基于behavioral-model的simple_route测试统计功能:

    1、直接关联统计,这种方式可以工作:

    // this counter can work!!
    counter count_lpm_match {
    type : packets_and_bytes;
    direct : ipv4_lpm;
    }

    table ipv4_lpm {
    reads {
    ipv4.dstAddr : lpm;
    }
    actions {
    set_nhop;
    _drop;
    }
    size: 1024;
    }

    action set_dmac(dmac) {
    modify_field(ethernet.dstAddr, dmac);
    }

    // this counter can work!!
    counter count_pkt_fwd {
    type : packets_and_bytes;
    direct : fwd_set_dmac;
    }

    table fwd_set_dmac {
    reads {
    routing_metadata.nhop_ipv4 : exact;
    }
    actions {
    set_dmac;
    _drop;
    }
    size: 512;
    }

    2、table方式,启动失败

    #define MAX_PORTS 256 

    counter ingress_port_counter {
    type: packets_and_bytes; // bmv2 always counts both bytes and packets 
    instance_count: MAX_PORTS;
    }

    action update_counters() {

    count(ingress_port_counter, 0);
    //count(ingress_port_counter, standard_metadata.ingress_port);
    //count(egress_port_counter, standard_metadata.egress_spec);
    }

    table do_process_counters {
    actions {
    update_counters;
    }
    }

    control ingress {
    if(valid(ipv4) and ipv4.ttl > 0) {
    apply(ipv4_lpm);
    apply(fwd_set_dmac); 
    //apply(do_process_counters); 
    }
    }

    3、调用方式,启动失败

    // CANNOT WORK
    action set_nhop(nhop_ipv4, port) {
    modify_field(routing_metadata.nhop_ipv4, nhop_ipv4);
    modify_field(standard_metadata.egress_spec, port);
    modify_field(ipv4.ttl, ipv4.ttl - 1);
    //count(ingress_port_counter, port);
    }

  • 相关阅读:
    系统提示MSVCR71.DLL缺失
    loadrunner11脚本录制乱码、控制台乱码
    性能测试之-脚本录制、web_url、web_submit_data
    tomcat启动报错排查
    环境配置问题
    python函数应用
    问题记录
    性能测试学习10_场景设计(二)
    性能测试学习09_场景设计(一)
    性能测试学习08_脚本编写总结
  • 原文地址:https://www.cnblogs.com/heimafeitian/p/9644224.html
Copyright © 2011-2022 走看看