<div dir="ltr"><div><div><div>Hi ,<br></div>     Is there a way in the p4-16 program we can jump out of the ingress block based on an ACL or a table entry ? <br><br></div>We have a table which specifies whether we need to encap the packet or not . If the table specifies that encap rule is specified , we should encap the packet in new format , else we should exit out of the ingress block and let it egress normally (we dont want packet to get drop). We tried "exit" statement , however "exit" in condition gives an error <span style="background-color:rgb(255,217,102)">. <b>Is there any specific way we need to do exit or jump from the control block ? </b></span><br><br><br><span style="font-family:monospace,monospace">p4c-bm2-ss --p4v 16 "insert_new_hdr.p4" -o "insert_new_hdr.p4.json"<br><b>insert_new_hdr.p4(377): error: exit: Conditional execution in actions is not supported on this target</b><br>          exit;</span><br></div><div>          ^^^^</div><div><br></div><div>Table entry is : <i>table_set_default node_source node_sourcing 3</i><br> <br></div><div><u><b>Pseudocode </b></u><br></div><div><br></div><span style="color:rgb(0,0,255)"><span style="font-family:monospace,monospace">const bit<8>  NO_OP_NODE = 0x03;</span><br></span><div><span style="color:rgb(0,0,255)"><span style="font-family:monospace,monospace"><br>ingress block {<br>    <br>    <br>    action node_sourcing(nodeType_t node_type) {<br><br>       if (NO_OP_NODE == node_type){<br>          /* COME OUT OF THE INGRESS .. DONT DO ANYTHING AT ALL */<br>          exit;<br>       }<br><br>    }<br>    <br>       <br>        table node_source {<br>            actions        = { node_sourcing; NoAction; }<br>            default_action =  NoAction();<br>    }<br>    <br>    <br>        apply {<br>            if (condition1) {<br>                <br>                <br>                node_source.apply();   ==> If the ACL ot table entry doesnt match , we should be to exit out of the ingress block and continue with the egress block .<br>    <br>    <br>                if (condition2)<br>                {<br>                     add_some_extra_header();<br>                     new_hdr.apply();<br>                } else if (condition3)<br>    <br>                {<br>                    if(new_condition)<br>                    {<br>                       add_new_hdr2_option();<br>                    }<br>                    new_hdr.apply();<br>                }<br>    <br>            }<br>        }<br>    }<br>    <br><br>}</span></span><br><br><br><div><br clear="all"><div><div><div><div class="gmail_signature"><div dir="ltr"><font face="courier new, monospace"><font size="2"><span lang="hi"><span title="Click for alternate translations">Regards,<br>Aditya Dogra</span></span></font></font><br></div></div></div>
</div></div></div></div></div>