This is supported by the Petr4 interpreter, but not by the poulet4 semantics. Poulet4 supports a special treatment for packet_in and packet_out by converting them to constructor parameters with hard-coded object references. For other kinds of directionless parameters, we support value parameters (e.g. mathematical integer and string), but not objects. We can do that by unrolling.
P4 allows using directionless parameters to pass (compile-time known) objects to functions. For example,
This is supported by the Petr4 interpreter, but not by the poulet4 semantics. Poulet4 supports a special treatment for
packet_in
andpacket_out
by converting them to constructor parameters with hard-coded object references. For other kinds of directionless parameters, we support value parameters (e.g. mathematical integer and string), but not objects. We can do that by unrolling.In general, I would like to ask for opinions.