<div dir="ltr">Hi,<div><br></div><div>I can think of several possible ways of doing something like this:</div><div>1. use if statements in the ingress control and dispatch to the appropriate control based on the ingress interface. You can also use a table (possibly with static const entries if you are using P4_16). If you are writing your own compiler backend, you could possibly optimize this "dispatcher" out and allocate each sub-control to its own router ingress.</div><div>2. you could write a different P4 program for each ingress</div><div>3. if you are using P4_16, you could define your own P4 architecture definition (<a href="https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.html#sec-arch" target="_blank">https://p4.org/p4-spec/docs/P<wbr>4-16-v1.0.0-spec.html#sec-arch</a><wbr>) which would expose each ingress in your router as a separate entity and let you provide a different control instance for each.</div><div><br></div><div>I would say solution 3. is the best one (after all this is why we have the notion of architecture in P4_16), but it is hard to say without more details.</div><div><br></div><div>Thanks,</div><div><br></div><div>Antonin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 15, 2018 at 10:32 PM, Ganesh C S <span dir="ltr"><<a href="mailto:ch.sa.ganesh@gmail.com" target="_blank">ch.sa.ganesh@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>Having a global table with interface identifier looks to be a hack. <br><br>Some routers have separate ingress that can be populated with locally relevant logic. I am looking for p4 equivalent of this.<br><br></div>regs<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888">Ganesh <br></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 14, 2018 at 5:21 AM, Hardik Soni <span dir="ltr"><<a href="mailto:hardik.soni@inria.fr" target="_blank">hardik.soni@inria.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:georgia,serif;font-size:12pt;color:#000000"><div>put <span style="font-size:12pt">InControl.inputPort as a match field for the tables.</span></div><div><span style="font-size:12pt"><br></span></div><div><span name="x"></span><div><span style="font-family:georgia,serif">-Hardik</span></div><span name="x"></span><br></div><hr id="m_-3335154904759901495m_3290089277378536229zwchr"><blockquote style="border-left:2px solid #1010ff;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><b>From: </b>"Ganesh C S" <<a href="mailto:ch.sa.ganesh@gmail.com" target="_blank">ch.sa.ganesh@gmail.com</a>><br><b>To: </b><a href="mailto:p4-dev@lists.p4.org" target="_blank">p4-dev@lists.p4.org</a><br><b>Sent: </b>Sunday, 14 January, 2018 12:16:06 PM<br><b>Subject: </b>[P4-dev] Binding a table to an interface<div><div class="m_-3335154904759901495h5"><br><div><br></div><div dir="ltr"><div dir="ltr"><div><div><div>Hi,<br></div><div><br></div>I am new to <span class="m_-3335154904759901495m_3290089277378536229gmail-il">P4</span> and am trying to bind specific match-action tables to interfaces. In my case, a packet received on ingress interface A, it should look at table A. Similarly, ingress interface B should look at table B and so on.<br><div><br></div></div>Any way of binding the tables to the interfaces ?<br><div><br></div></div>regs<div class="m_-3335154904759901495m_3290089277378536229gmail-m_-6862218484120099254gmail-yj6qo m_-3335154904759901495m_3290089277378536229gmail-m_-6862218484120099254gmail-ajU"><div id="m_-3335154904759901495m_3290089277378536229gmail-m_-6862218484120099254gmail-:om" class="m_-3335154904759901495m_3290089277378536229gmail-m_-6862218484120099254gmail-ajR"><img class="m_-3335154904759901495m_3290089277378536229gmail-m_-6862218484120099254gmail-ajT m_-3335154904759901495m_3290089277378536229gmail-CToWUd" src="https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif">Ganesh</div></div></div></div><br></div></div>______________________________<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></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">Antonin<br></div></div>
</div>