[P4-dev] Is metadata considered in deparsing?

Javier Blazquez jblazquez at riotgames.com
Mon Jun 20 19:22:28 EDT 2016

I think of deparsing as simply the reversal of the parsing process, that
is, going through whatever `extract` operations have been executed and
copying those headers back from the Parsed Representation into the packet
for transmission.

In that scenario the use of metadata to switch among parsers shouldn't
change things because all that matters is what `extract` operations have
been performed on actual headers and in which order. Remember that metadata
is by definition not part of the actual packet on the wire so whatever
values your metadata headers have shouldn't matter when it comes to
assembling the packet for transmission.

However, an interesting side question that comes to mind is regarding the
`push`, `pop`, `add_header` and `remove_header` primitive actions. These
are not used during the parsing phase; they're used as part of compound
actions in the ingress or egress pipeline, but they affect the packet that
will be assembled for transmission.

So deparsing isn't _just_ the reversal of the parsing process, but also the
addition/removal of headers as per those primitives above? In which case,
does the order of headers in the transmitted packet follow the order in
which push/add_header/etc have executed for a given packet? And regarding
header stacks, I assume they're always serialized as a single block (i.e.
all valid headers in the stack following each other)? The 1.1 spec doesn't
seem to specify the order in which headers will be serialized to the output

On Mon, Jun 20, 2016 at 3:01 PM, Huynhtu Dang <huynh.tu.dang at usi.ch> wrote:

> Dear all,
> I wonder if metadata is considered in deparsing phase? As I set the value
> of metadata in an action and use this metadata value to switch among
> parsers. But it seems the deparser skips checking the value of metadata or
> the value of metadata is reset before deparsing.
> Best,
> Tu Dang
> _______________________________________________
> P4-dev mailing list
> P4-dev at lists.p4.org
> http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-dev_lists.p4.org/attachments/20160620/815d7ea8/attachment-0002.html>

More information about the P4-dev mailing list