[P4-discuss] table_modify ternary table is not working in BMV2 runtime_CLI

Thambi Sreedharan thambisree at gmail.com
Fri Oct 7 21:06:15 EDT 2016


HI Antonin

Thanks for fast the reply

I tried and I got the same error:

RuntimeCmd:  table_modify ternary_1 setport  1 aa:bb:cc:dd:dd:02&&&01 => 7

Error: Action setport needs 1 parameters

thambi

On Fri, Oct 7, 2016 at 4:41 PM, Antonin Bas <antonin at barefootnetworks.com>
wrote:

> Hi Thambi,
>
> The priority is considered to be part of the key, so you cannot modify it
> with table_modify. If you omit the "0" after the "7" in your CLI command it
> should work.
>
> On Fri, Oct 7, 2016 at 4:37 PM, Thambi Sreedharan <thambisree at gmail.com>
> wrote:
>
>> Hi
>>
>> I am new to P4,
>>
>> trying to modify ternary table entry and I getting error
>>
>> P4 code:
>>
>> header_type ethernet_t {
>>
>>     fields {
>>
>>         dstAddr : 48;
>>
>>         srcAddr : 48;
>>
>>         etherType : 16;
>>
>>     }
>>
>> }
>>
>>
>> parser start {
>>
>>     return parse_ethernet;
>>
>> }
>>
>> header_type imd_t {
>>
>> fields {
>>
>> myport : 5;
>>
>> }
>>
>>
>> }
>>
>> header ethernet_t ethernet;
>>
>> metadata imd_t imd;
>>
>>
>> parser parse_ethernet {
>>
>>     extract(ethernet);
>>
>>     return ingress;
>>
>> }
>>
>>
>> action _nop() { }
>>
>>
>> action setport(port) {
>>
>> modify_field(imd.myport, port);
>>
>> }
>>
>>
>> table ternary_1 {
>>
>>     reads {
>>
>>         ethernet.dstAddr : ternary;
>>
>>     }
>>
>>     actions { _nop;setport; }
>>
>>     size : 65536;
>>
>> }
>>
>>
>> table ternary_2 {
>>
>>     reads {
>>
>>         ethernet.srcAddr : ternary;
>>
>>     }
>>
>>     actions { _nop; }
>>
>>     size : 65536;
>>
>> }
>>
>>
>> table ternary_3 {
>>
>>     reads {
>>
>>         ethernet.srcAddr : ternary;
>>
>>         ethernet.dstAddr : ternary;
>>
>>     }
>>
>>     actions { _nop; }
>>
>>     size : 65536;
>>
>> }
>>
>>
>> control ingress {
>>
>>     apply(ternary_1);
>>
>>     apply(ternary_2);
>>
>>     apply(ternary_3);
>>
>> }
>>
>>
>> control egress { }
>>
>>
>> use the p4c-bm to compile and got json file
>>
>> started the BMV2 with json
>>
>> ran $BMV2_PATH/tools/runtime_CLI.py
>>
>> added entry as follows
>>
>> RuntimeCmd: table_add ternary_1 setport aa:bb:cc:dd:dd:02&&&01 => 6 0
>>
>> Adding entry to ternary match table ternary_1
>>
>> match key:           TERNARY-aa:bb:cc:dd:dd:02 &&& 00:00:00:00:00:01
>>
>> action:              setport
>>
>> runtime data:        06
>>
>> Entry has been added with handle 1
>>
>> want to modify the entry and did as follows
>>
>>
>> RuntimeCmd: table_modify ternary_1 setport  1 aa:bb:cc:dd:dd:02&&&01 => 7
>> 0
>>
>> Error: Action setport needs 1 parameters
>>
>> Please let me know how to modify a ternary table ?
>>
>>
>> Thanks
>>
>> Thambi
>>
>>
>>
>>
>> _______________________________________________
>> P4-discuss mailing list
>> P4-discuss at lists.p4.org
>> http://lists.p4.org/mailman/listinfo/p4-discuss_lists.p4.org
>>
>
>
>
> --
> Antonin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-discuss_lists.p4.org/attachments/20161007/da6c737f/attachment-0002.html>


More information about the P4-discuss mailing list