<div dir="ltr">Hello Peng,<div><br></div><div>You are absolutely correct that hierarchical metering can easily be achieved by combining the outputs of multiple non-hierarchical meters that are defined in PSA. The additional benefit is that the depth of the hierarchy and the actual algorithm that combines the output of two or more meters to derive the final color can be fairly arbitrary. </div><div><br></div><div>This, I think, demonstrates the benefit of having simple primitives and a flexible way to combine those as opposed to have complex constructs that are difficult to repurpose or combine. And this brings me to your next question/comment about having a counter for number of packets/bytes dropped by the meter.</div><div><br></div><div>First, it is important to understand that meters do not drop packets -- they only assign them one of 3 colors. What to do afterwards is decided by the rest of your program. It can certainly decide to drop Red packets, but it can also decide to redirect Yellow packets somewhere or multicast only Green packets, etc. So, providing an integrated counter makes very little sense. What makes sense is creating a table with regular counters, that are already defined in PSA and decide which counter you want to increment and when, For example, you can have a simple set of 3 counters (altogether or per meter), one counting Red packets/bytes, another one counting Yellow packets/bytes and the last one counting Green. So, again, you combine simple primitives to achieve something interesting.</div><div><br></div><div>If you want to be able to export these counters via INT, then you will need to replace counters with registers. The reason is that PSA does not allow you to access counter values in the data plane -- you can only increment them. Registers, on the other hand, can be both written, modified and read. </div><div><br></div><div>Happy hacking,</div><div>Vladimir</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 27, 2017 at 7:42 PM, Peng He <span dir="ltr"><<a href="mailto:peng.he.2000@gmail.com" target="_blank">peng.he.2000@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"><div><div><div><div><div>I like PIFO, and hope there could be (physical) implementation about it sometime soon.<br><br></div>An example of hierarchical meter (not queuing) might be like this: first-layer of metering, say one based on VLAN ID for an example, then after the first layer metering, 2nd layer metering applies (could be one or more meter instances), for instance metering based on COS value in the VLAN tag.<br><br></div>In the PSA arch doc (thanks for the reference links), meter is an element fully based on RFC 2698. It should be feasible for P4 program to achieve hierarchical meter with the RFC 2698 based meter element.<br><br></div>I see the value to have information related to metering, e.g., # of packets/bytes accepted by the meter, # of packets/bytes dropped by the meter, etc. But I am not sure should INT include these info or somebody else. Is there a list or definition what info INT should include (for trouble shooting purpose, for monitoring purpose, what others?)? <br><br></div><div>BTW, how does the PSA arch take care about OAM and operational data collection? extern (counter)? CPU? control plane?<br></div><div><br><br></div>Regards,<br></div>Peng<br><div><div><div><br> <br></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 23, 2017 at 7:15 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">P4 doesn't have loops, pointers, malloc(), or free(), among other things it does not have that more general-purpose programming languages have.  OK, technically it does have loops, but the kind it has (in a header parser) doesn't help you in implementing a collection of FIFO queues in P4, nor in implementing a packet scheduler that selects from and removes the first packet from one or more FIFO queues.<div><br></div><div>Sure, a particular P4-programmable implementation might support 4 class-of-service queues per output port, with weighted-fair-queuing scheduling and configurable weights between those 4 class-of-service queues.  That doesn't necessarily make it possible to implement the PIFO algorithm on such a device.</div><div><br></div><div>Having 4 class-of-service queues per output port, and the ability to configure one of them as strictly higher priority than the other 3 queues, and having some algorithm that can be written in P4 to select some packets to go to the strict high priority queue vs. some default priority queue, could be done.</div><span class="m_-3895279414941128615HOEnZb"><font color="#888888"><div><br></div><div>Andy</div></font></span></div><div class="m_-3895279414941128615HOEnZb"><div class="m_-3895279414941128615h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 23, 2017 at 3:39 PM,  <span dir="ltr"><<a href="mailto:hemant@mnkcg.com" target="_blank">hemant@mnkcg.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="EN-US"><div class="m_-3895279414941128615m_7479756367852063108m_3043586334818803131WordSection1"><p class="MsoNormal">Programmable packet schedulers for a switch are starting to emerge – this is what one would need.  See the URL below which includes a research paper and also source code.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><a href="http://web.mit.edu/pifo/" target="_blank">http://web.mit.edu/pifo/</a><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I don’t see any reason why the PIFO algorithm cannot be written in P4. <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hemant<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><b>From:</b> Wallas Fróes [mailto:<a href="mailto:wallasync@gmail.com" target="_blank">wallasync@gmail.com</a>] <br><b>Sent:</b> Wednesday, August 23, 2017 4:38 PM<br><b>To:</b> <a href="mailto:hemant@mnkcg.com" target="_blank">hemant@mnkcg.com</a><br><b>Cc:</b> Andy Fingerhut <<a href="mailto:andy.fingerhut@gmail.com" target="_blank">andy.fingerhut@gmail.com</a>>; Peng He <<a href="mailto:peng.he.2000@gmail.com" target="_blank">peng.he.2000@gmail.com</a>>; p4-dev <a href="http://lists.p4.org" target="_blank">lists.p4.org</a> <<a href="mailto:p4-dev@lists.p4.org" target="_blank">p4-dev@lists.p4.org</a>></p><div><div class="m_-3895279414941128615m_7479756367852063108h5"><br><b>Subject:</b> Re: [P4-dev] queue manipulation<u></u><u></u></div></div><p></p><div><div class="m_-3895279414941128615m_7479756367852063108h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Hello,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">I was occupied those weeks.<u></u><u></u></p></div><div><p class="MsoNormal">But what I would liked to know is if at the P4 language has something that acept the packets queuing.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">E.g: I have a packets traffic arriving at the switch and it going out to the port 1. The out queue port 1 is big. So, it arrive a packet with priority to port 1. <u></u><u></u></p></div><div><p class="MsoNormal">I would liked to know how to pass the packet in the front the others.<u></u><u></u></p></div><div><p class="MsoNormal">I have as create two logic queues to the same port (out_put port 1) or something that to insert the packet in the queue start.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">That is possible using just P4, or is it necessary to programming inside of the switch?  <u></u><u></u></p></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">2017-08-22 19:53 GMT-03:00 <<a href="mailto:hemant@mnkcg.com" target="_blank">hemant@mnkcg.com</a>>:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">Hierarchical  queuing framework forms trees such as HQF on Cisco routers for queueing. See <a href="https://www.youtube.com/watch?v=gnqDBiVNyrY" target="_blank">https://www.youtube.com/watch?<wbr>v=gnqDBiVNyrY</a><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Also, see, <a href="http://dpdk.org/doc/guides/prog_guide/qos_framework.html" target="_blank">http://dpdk.org/doc/guides/pro<wbr>g_guide/qos_framework.html</a><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Let’s see what does Peng have to see for what he had in mind.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Hemant<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><b>From:</b> P4-dev [mailto:<a href="mailto:p4-dev-bounces@lists.p4.org" target="_blank">p4-dev-bounces@lists.p<wbr>4.org</a>] <b>On Behalf Of </b>Andy Fingerhut<br><b>Sent:</b> Tuesday, August 22, 2017 6:34 PM<br><b>To:</b> Peng He <<a href="mailto:peng.he.2000@gmail.com" target="_blank">peng.he.2000@gmail.com</a>><br><b>Cc:</b> p4-dev <a href="http://lists.p4.org" target="_blank">lists.p4.org</a> <<a href="mailto:p4-dev@lists.p4.org" target="_blank">p4-dev@lists.p4.org</a>><br><b>Subject:</b> Re: [P4-dev] queue manipulation<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">There are 3-color 2-rate meters (also known as policers) in PSA.  They can be used in egress processing, ingress processing, both, or neither, as you choose in your P4 program.<u></u><u></u></p><div><div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">If by hierarchical policers you mean something other than a "single 3-color 2-rate policer", e.g. somehow daisy-chaining multiple of those together so they can be updated in some way dependent upon each other, then the only way that I am aware of is if it can be implemented by a sequential update of multiple independent 3-color 2-rate policers.<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I have not heard of any proposals for INT to include information related to metering.  Do you have any links to proposals involving that?<u></u><u></u></p></div></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Andy<u></u><u></u></p></div></div></div></div><div><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">On Sun, Aug 20, 2017 at 5:32 PM, Peng He <<a href="mailto:peng.he.2000@gmail.com" target="_blank">peng.he.2000@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Thanks Andy for the comprehensive response! I can see readable egress queue length would be useful for INT. Could you also talk about ingress metering in PSA? I mean three color two rate policer, will the hierarchical metering being considered in PSA? I suppose INT would also need info about metering, e.g., accepted packets/bytes, dropped packets/bytes? BTW, is there a draft to describe PSA in a bit details at this time? Thanks again.<u></u><u></u></p></div><p class="MsoNormal">Regards,<u></u><u></u></p></div><p class="MsoNormal">Peng<u></u><u></u></p></div><div><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">On Wed, Aug 16, 2017 at 1:33 PM, Andy Fingerhut <<a href="mailto:andy.fingerhut@gmail.com" target="_blank">andy.fingerhut@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><div><div><p class="MsoNormal">A key fact about P4 right now is that different implementations of P4 can have different capabilities from each other.  Neither the P4_14 nor P4_16 language specs contain anything I can think of that would directly enable you to implement the things you ask about.  That doesn't stop _particular P4 implementations_ from providing additional mechanisms to do so, but of course that can limit the portability of P4 programs wanting to implement such features.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">The Portable Switch Architecture (PSA) spec is in draft form right now, and I can speak to its current contents, and what I expect it might include when it reaches version 1.0.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><p class="MsoNormal">1. can queue depth be manipulated through P4?<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">There is a proposal to include as part of the PSA the ability to make visible to your P4 egress control block the depth that a queue had at the time a packet was enqueued at its end, here: <a href="https://github.com/p4lang/p4-spec/issues/335" target="_blank">https://github.com/p4lan<wbr>g/p4-spec/issues/335</a>   The title of that issue, and some of the comments there, suggest making it readable from the ingress control block before enqueuing it, but that seems to be a less favored approach due to implementation difficulties in some ASIC implementations.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">2. can the queue congestion avoidance algorithms or associated parameters per egress queue be manipulated?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">"queue congestion avoidance algorithms" covers a lot of possibilities, so it is difficult to answer that question without knowing more about what visibility to the system state you need for a particular algorithm.  If you have one in mind that can be implemented without knowing about current queue depths, i.e. it can be implemented using the Register extern to read state, modify it in your P4 program, and write it back, e.g. elephant traps, Bloom filters, etc. etc., then most likely yes.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">3. you mentioned </span><span style="font-size:13.5pt;font-family:"-webkit-standard",serif;color:black">control plane APIs exist for configuring scheduling policies</span><span style="font-size:9.5pt">, could you elaborate it a bit more? don't think P4 can describe scheduling polices at this moment? or treat scheduler as an 'extern'? till P4 can have programmable packet scheduling? </span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">If we split hairs a bit, I didn't actually say they exist :-)  Whether a P4 implementation has multiple class of service queues, with scheduling parameters that can be configured via a control plane API, is not part of the PSA, and I would guess it will not be, except to specify how the ingress P4 code could specify one of several class-of-service queues for the selected output port (but allowing an implementation to only have 1 queue per output port).  The P4-API effort might choose to define APIs for configuring parameters for a scheduler, but I am not sure whether that is part of that group's plans.</span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">Note that even if a P4 implementation contained some non-P4-programmable scheduling algorithms, e.g. weighted fair queueing with run-time configurable weight values for each queue, that can be tremendously useful.  P4_16 definitely takes the approach that these are in externs.</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="color:#888888"> </span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Andy</span><u></u><u></u></p></div></div><div><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">On Wed, Aug 16, 2017 at 9:43 AM, Peng He <<a href="mailto:peng.he.2000@gmail.com" target="_blank">peng.he.2000@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><div><div><div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Sorry to jump here.. I have similar question about queue:<u></u><u></u></p></div><p class="MsoNormal">1. can queue depth be manipulated through P4?<u></u><u></u></p></div><p class="MsoNormal">2. can the queue congestion avoidance algorithms or associated parameters per egress queue be manipulated?<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">3. you mentioned <span style="font-size:13.5pt;font-family:"-webkit-standard",serif;color:black">control plane APIs exist for configuring scheduling policies</span>, could you elaborate it a bit more? don't think P4 can describe scheduling polices at this moment? or treat scheduler as an 'extern'? till P4 can have programmable packet scheduling? <u></u><u></u></p></div><p class="MsoNormal">Regards,<u></u><u></u></p></div><p class="MsoNormal">Peng<u></u><u></u></p></div><div><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">On Wed, Aug 16, 2017 at 10:24 AM, Andy Fingerhut <<a href="mailto:andy.fingerhut@gmail.com" target="_blank">andy.fingerhut@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><div><p class="MsoNormal">In P4 source code, you typically do not manipulate queues.  You select which queue a packet should be enqueued upon in P4 source code, e.g. by assigning a value to a metadata field that selects an output port for the packet, or multiple output ports via a multicast group.  In the most common case those queues will be FIFO.  I guess if that is what you meant by manipulating queues, then that is how it is typically done.<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Can you say a little more about what kinds of queue manipulation you are interested in here?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">For example, are asking about what kind of control plane APIs exist for configuring scheduling policies between multiple queues leading to the same output port?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Something else?<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">And<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div></div><div><p class="MsoNormal"> <u></u><u></u></p><div><div><div><p class="MsoNormal">On Tue, Aug 15, 2017 at 10:04 PM, Wallas Fróes <<a href="mailto:wallasync@gmail.com" target="_blank">wallasync@gmail.com</a>> wrote:<u></u><u></u></p></div></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"><div><div><div><p class="MsoNormal">Hello,<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">I have a question.<u></u><u></u></p></div><div><p class="MsoNormal">Would I like to know, how I do for manipulating the queues in P4?<span style="color:#888888"><br clear="all"></span><u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><p class="MsoNormal"><span class="m_-3895279414941128615m_7479756367852063108m_3043586334818803131m4531917905538456733m-3538264827947674476m-3198329532753826150m2784614309406062842m3958004942886826818hoenzb"><span style="color:#888888">-- </span></span><u></u><u></u></p><div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Att,</span><u></u><u></u></p><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888"> </span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Wallas Fróes</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Information Security in Computer Networks</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Computer Engineer</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt;color:#888888">Cel: (77) 8841-0762</span><u></u><u></u></p></div></div></div></div></div><p class="MsoNormal"> <u></u><u></u></p></div></div><p class="MsoNormal">______________________________<wbr>_________________<br>P4-dev mailing list<br><a href="mailto:P4-dev@lists.p4.org" target="_blank">P4-dev@lists.p4.org</a><br><a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-dev_lists.p4.org</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"> <u></u><u></u></p></div><p class="MsoNormal"><br>______________________________<wbr>_________________<br>P4-dev mailing list<br><a href="mailto:P4-dev@lists.p4.org" target="_blank">P4-dev@lists.p4.org</a><br><a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-dev_lists.p4.org</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></blockquote></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></blockquote></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></blockquote></div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></div></div><p class="MsoNormal"><br>______________________________<wbr>_________________<br>P4-dev mailing list<br><a href="mailto:P4-dev@lists.p4.org" target="_blank">P4-dev@lists.p4.org</a><br><a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-dev_lists.p4.org</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- <u></u><u></u></p><div><div><p class="MsoNormal"><span style="font-size:9.5pt">Att,</span><u></u><u></u></p><div><p class="MsoNormal"><span style="font-size:9.5pt"><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">Wallas Fróes<u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">Information Security in Computer Networks<u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">Computer Engineer<u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-size:9.5pt">Cel: (77) 8841-0762<u></u><u></u></span></p></div></div></div></div></div></div></div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@lists.p4.org">P4-dev@lists.p4.org</a><br>
<a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" rel="noreferrer" target="_blank">http://lists.p4.org/mailman/<wbr>listinfo/p4-dev_lists.p4.org</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><font size="4"><b>Vladimir Gurevich</b></font></div><div><font size="4"><b><br></b></font></div><div><font size="4"><b>Barefoot Networks</b></font></div><div><b><font size="2">Technical Lead, Customer Engineering</font></b></div><div><font size="2">Email: <a href="mailto:vag@barefootnetworks.com" target="_blank">vag@barefootnetworks.com</a></font></div><div><font size="2">Phone: (408) 833-4505</font></div><div><br></div></div></div></div></div>
</div>