Hi Andy,
For the problem statement point of view, I would consider anything that doesn�t have a prefix to be a top-level name.
Given that match_kind and error values are not prefixed (unlike enum values), I think we should consider them top-level names. Similarly, we have standard methods/fields (i.e. �hit�, �miss�, �action_run�, �last�, �next�, �push_front�, �minSizeInBits�, etc.) that I would also point out.
The reason is that all these regularly come up during our discussions on backward/forward compatibility and your proposal touches upon the same topics. I am not saying that we should necessarily try to fix everything with it, but I think it might be a worthy consideration. For example, we can define a reserved namespace (e.g. P4) and put all these in there and then allow these to be imported by default of something.
Best,
Vladimir Gurevich
Principal Engineer,
Barefoot Division (BXD)
Director, Intel� Connectivity Education Hub
Email: Vladimir...@intel.com
Cell: +1 (408) 833-4505
Hello Andy,
I agree. We can safely exclude methods/fields, defined on the standard objects, since they are always prefixed and there is no way that someone can just add a new method on a header or a table (or even packet_in) without changing the compiler.
So, that leaves us with match_kind (s) and, maybe, table attributes (since each architecture can define its own).
Thanks,