From aeb0c778dacb6642653b6c6b7b45570f0df8e980 Mon Sep 17 00:00:00 2001 From: devalgupta404 Date: Mon, 2 Feb 2026 22:42:36 +0530 Subject: [PATCH] Clarify compile time constant requirements for directionless action parameters Signed-off-by: devalgupta404 --- p4-16/spec/P4-16-spec.adoc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/p4-16/spec/P4-16-spec.adoc b/p4-16/spec/P4-16-spec.adoc index a0088aef3f..9ed86b41bf 100644 --- a/p4-16/spec/P4-16-spec.adoc +++ b/p4-16/spec/P4-16-spec.adoc @@ -6810,12 +6810,14 @@ statements or expressions. Actions can be executed in two ways: -- Implicitly: by tables during match-action processing. -- Explicitly: either from a `control` block or from another `action`. - In either case, the values for all action parameters - must be supplied explicitly, including values for the directionless - parameters. In this case, the directionless parameters behave like `in` - parameters. +- Implicitly: by tables during match-action processing. For action + invocations specified via table properties (such as `default_action` + or `entries`), directionless parameters must be compile-time constant + values, as these arguments are supplied by the control plane. +- Explicitly: via a call statement, either from a `control` block or from another `action`. + In this case, the values for all action parameters must be supplied explicitly, + including values for directionless parameters. Directionless parameters + behave like `in` parameters and need not be compile-time constant values. [#sec-tables] === Tables