small fix after bmv2 update, plus a #ifdef hack to test direct meters
This commit is contained in:
parent
17952c0f42
commit
7d563d6077
@ -2,4 +2,4 @@ table_set_default m_table _nop
|
|||||||
table_add m_table m_action aa:aa:aa:aa:aa:aa => 0
|
table_add m_table m_action aa:aa:aa:aa:aa:aa => 0
|
||||||
table_set_default m_filter _drop
|
table_set_default m_filter _drop
|
||||||
table_add m_filter _nop 0 =>
|
table_add m_filter _nop 0 =>
|
||||||
meter_set_rates my_meter 0.0000005:1 0.00001:1
|
meter_array_set_rates my_meter 0.0000005:1 0.00001:1
|
||||||
|
@ -14,6 +14,9 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// to test direct meters
|
||||||
|
// #define USE_DIRECT_METER
|
||||||
|
|
||||||
header_type ethernet_t {
|
header_type ethernet_t {
|
||||||
fields {
|
fields {
|
||||||
dstAddr : 48;
|
dstAddr : 48;
|
||||||
@ -58,14 +61,27 @@ action _drop() {
|
|||||||
action _nop() {
|
action _nop() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_DIRECT_METER
|
||||||
|
meter my_meter {
|
||||||
|
type: packets; // or bytes
|
||||||
|
direct: m_table;
|
||||||
|
result: meta.meter_tag;
|
||||||
|
}
|
||||||
|
#else
|
||||||
meter my_meter {
|
meter my_meter {
|
||||||
type: packets; // or bytes
|
type: packets; // or bytes
|
||||||
static: m_table;
|
static: m_table;
|
||||||
instance_count: 16384;
|
instance_count: 16384;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
action m_action(meter_idx) {
|
action m_action(meter_idx) {
|
||||||
|
#ifdef USE_DIRECT_METER
|
||||||
|
// just a hack to ensure that meter_idx is not removed by compiler
|
||||||
|
modify_field(standard_metadata.egress_spec, meter_idx);
|
||||||
|
#else
|
||||||
execute_meter(my_meter, meter_idx, meta.meter_tag);
|
execute_meter(my_meter, meter_idx, meta.meter_tag);
|
||||||
|
#endif
|
||||||
modify_field(standard_metadata.egress_spec, 1);
|
modify_field(standard_metadata.egress_spec, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,9 @@ register my_register {
|
|||||||
}
|
}
|
||||||
|
|
||||||
action m_action(register_idx) {
|
action m_action(register_idx) {
|
||||||
register_read(meta.register_tmp, my_register, register_idx);
|
modify_field_rng_uniform(meta.register_tmp, 100, 200);
|
||||||
|
register_write(my_register, register_idx, meta.register_tmp);
|
||||||
|
// register_read(meta.register_tmp, my_register, register_idx);
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user