[P4-dev] filling tables

Changhoon Kim chang at barefootnetworks.com
Mon Jul 20 17:20:05 EDT 2015


Hi Salvatore, Haoyu, and Sandor,

I agree it might be useful in some cases if P4 can support h/w learning
capabilities. As we publicly announced last month, we've started an
official P4 working-meeting series, and representatives of P4.org members
are working together to enrich the capabilities of P4 and deliver a new,
stable version of the spec sooner than later. Support for h/w learning is
one of the topics we're looking into in those working meetings.

On the technical side, it seems there are a couple (and perhaps more)
approaches to enable this. See the followings for example.

- Introduce a special property of a table
- New language constructs that trigger data-plane-based entry insertion and
update. The construct for insertion will be used by a default (i.e.,
miss-based) action of a table, and the construct for update will be used by
non-default (i.e., match-based) actions.

-- Chang

On Mon, Jul 20, 2015 at 1:55 PM, Sandor Laki <lakis at elte.hu> wrote:

>  Hi Salvatore, All,
>
> We faced similar problem when were working on a mac learning example,
> discussed earlier on the dev-list. Unfortunately, the current specification
> does not handle data plane driven table fill and update. For example, the
> mac learning can be done similarly to OpenFlow, using two tables (e.g. smac
> and dmac). As far as I know, the only thing you can do is to generate a
> digest and hand it to a control process running on the same switch. Of
> course, this is not as efficient as a data-plane-driven solution, not
> mentioning aspects like target independence.
>
> Best,
> Sandor
>
> 2015.07.20. 20:04 keltezéssel, Haoyu song írta:
>
>  I agree such active data-path features are very useful and should be
> considered to add in P4 specification.
>
>
>
> Haoyu
>
>
>
> *From:* P4-dev [mailto:p4-dev-bounces at p4.org <p4-dev-bounces at p4.org>] *On
> Behalf Of *Salvatore Signorello
> *Sent:* Monday, July 20, 2015 7:05 AM
> *To:* p4-dev at p4.org
> *Subject:* [P4-dev] filling tables
>
>
>
> Hi all,
>
> I wonder if there is  a "data-plane"-driven  way to fill/update tables.
> For example, it could be possible for a match (and so for a packet) to
> generate a table insertion/update in this way:
>
> table xyz{
>     reads{
>         protocol1.fieldA : exact;
>         protocol2.fieldB : exact;
>     }
>     actions{
>         addEntry; // for example, called the first time the pair
> {protocol1.fieldA,protocol2.fieldB} has been seen
>         modifyEntry; // from the 2nd packet on, to keep trace of some
> other information
>    }
> }
>
>
> I would need this to implement a stateful forwarding behavior. Is there
> any way to express such behavior through the current language specification?
>
> Remark: I don't want to use registers, cause I would rather have an
> associative facility (key, value) such as a table.
>
> Thank you in advance for any hint,
> best,
> Salvatore
>
>
> _______________________________________________
> P4-dev mailing listP4-dev at p4.org
> Listinfo - http://mail.p4.org/mailman/listinfo/p4-dev_p4.org
> Archives - http://mail.p4.org/pipermail/p4-dev_p4.org/
>
>
>
> --
> Sándor Laki
> Department of Information Systems
> Eötvös Loránd University
> Pázmány Péter stny. 1/C
> H-1117, Budapest, Hungary
> Room 2.506
> Web: http://lakis.web.elte.hu
> Phone: +36 1 372 2869 / 8477
> Cell: +36 70 374 2646
>
>
> _______________________________________________
> P4-dev mailing list
> P4-dev at p4.org
> Listinfo - http://mail.p4.org/mailman/listinfo/p4-dev_p4.org
> Archives - http://mail.p4.org/pipermail/p4-dev_p4.org/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-dev_lists.p4.org/attachments/20150720/aacc21ad/attachment-0001.html>


More information about the P4-dev mailing list