<div dir="ltr"><div>Andy, Thanks a lot for the reply. </div><div><br></div>1) The digest mechanism is obviously a new direction to me. I was reading the P4_16 specs and there was no "digest" keyword. Then i moved to version 1.0.3 and found the digest mechanism. Is the digest mechanism available in P4 16? In case of digest, generate_digest  will not initiate a new flow. It basically generates a reply after processing a packet. (if my understanding are correct) <div><br></div><div>2) I know about clone based mechanism. </div><div><br></div><div>Let me explain my question a little bit more detail. Think about an openflow like protocol. Here both the controller and switch can initiate communication toward each other. Now if we want to achieve this kind of switch initiated communication (i.e. new flow), what would be the best technique in P4  ?<br></div><div><br></div><div>Robin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 25, 2017 at 2:27 PM, Andy Fingerhut <span dir="ltr"><<a href="mailto:andy.fingerhut@gmail.com" target="_blank">andy.fingerhut@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The digest mechanism is intended to send a 'record' containing a P4-program-specified collection of field values to the control plane, as the result of processing a received packet.  The prototypical example is if the P4 program was implementing Ethernet learning bridge functionality, if the source MAC address of the received packet was not currently in the MAC address table, then the P4 program would send a digest containing the packet's source MAC address and ingress port it arrived on (and perhaps other field values, too).<div><br></div><div>In addition to processing the received packet 'normally' (whatever that means for your application), the clone mechanism can be used to create another copy of the received packet, and then your P4 program can process it differently before sending it to a different destination than the 'normal' copy.  That clone could be sent to the control plane, to a different port, be tunnel-encapsulated, etc.<br></div><div><br></div><div>The P4 language is probably not the best fit for trying to implement the behavior of a TCP endpoint, with all of the data buffering and packet retransmission behavior that requires.  Not sure if you were even thinking along those lines, but wanted to mention it.</div><div><br></div><div>Andy</div></div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Wed, Oct 25, 2017 at 11:12 AM, Debobroto Das Robin <span dir="ltr"><<a href="mailto:drobin@kent.edu" target="_blank">drobin@kent.edu</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><div dir="ltr">Hello All,<div><br></div><div>Is there any option to start a new flow from p4 switch? For example based on certain event at switch we want to send a notification to control plane or some other destination. Is it possible? </div></div>
<br></span>______________________________<wbr>_________________<br>
P4-discuss mailing list<br>
<a href="mailto:P4-discuss@lists.p4.org" target="_blank">P4-discuss@lists.p4.org</a><br>
<a href="http://lists.p4.org/mailman/listinfo/p4-discuss_lists.p4.org" rel="noreferrer" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-discuss_lists.p4.org</a><br></blockquote></div><br></div>
</blockquote></div><br></div>