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);
    }

  • 相关阅读:
    Segmentation fault (core dumped)
    Missing separate debuginfos, use: debuginfo-install
    Qt学习资源
    Qt学习过程中遇到的问题
    深入浅出MFC--第一章
    MVC – 3.EF(Entity Framework)
    MVC基础知识 – 2.新语法
    js获取url参数值(HTML之间传值)
    解决IIS7、IIS7.5中时间格式显示的问题
    web.config详解 -- asp.net夜话之十一
  • 原文地址:https://www.cnblogs.com/soul-stone/p/9313218.html
Copyright © 2011-2022 走看看