22typedef __u32 PortId_t;
23typedef __u64 Timestamp_t;
24typedef __u8 ClassOfService_t;
25typedef __u16 CloneSessionId_t;
26typedef __u32 MulticastGroup_t;
27typedef __u16 EgressInstance_t;
30typedef __u8 PSA_PacketPath_t;
32static const PSA_PacketPath_t NORMAL = 0;
33static const PSA_PacketPath_t NORMAL_UNICAST = 1;
34static const PSA_PacketPath_t NORMAL_MULTICAST = 2;
35static const PSA_PacketPath_t CLONE_I2E = 3;
36static const PSA_PacketPath_t CLONE_E2E = 4;
37static const PSA_PacketPath_t RESUBMIT = 5;
38static const PSA_PacketPath_t RECIRCULATE = 6;
41typedef __u8 ParserError_t;
42static const ParserError_t NoError = 0;
43static const ParserError_t PacketTooShort = 1;
44static const ParserError_t NoMatch = 2;
45static const ParserError_t StackOutOfBounds = 3;
46static const ParserError_t HeaderTooShort = 4;
47static const ParserError_t ParserTimeout = 5;
48static const ParserError_t ParserInvalidArgument = 6;
51enum PSA_MeterColor_t { RED, GREEN, YELLOW };
57 PortId_t ingress_port;
58 PSA_PacketPath_t packet_path;
59} __attribute__((aligned(4)));
64 PortId_t ingress_port;
65 PSA_PacketPath_t packet_path;
66 Timestamp_t ingress_timestamp;
67 ParserError_t parser_error;
68} __attribute__((aligned(4)));;
73 MulticastGroup_t multicast_group;
75 ClassOfService_t class_of_service;
77 CloneSessionId_t clone_session_id;
80} __attribute__((aligned(4)));
88 PSA_PacketPath_t packet_path;
89} __attribute__((aligned(4)));
92 ClassOfService_t class_of_service;
94 PSA_PacketPath_t packet_path;
95 EgressInstance_t instance;
98 Timestamp_t egress_timestamp;
99 ParserError_t parser_error;
100} __attribute__((aligned(4)));
106 CloneSessionId_t clone_session_id;
108} __attribute__((aligned(4)));
111 PortId_t egress_port;
112} __attribute__((aligned(4)));
119 PSA_PacketPath_t packet_path;
123} __attribute__((aligned(4)));
128 __u8 class_of_service;
130 __u16 packet_length_bytes;
131} __attribute__((aligned(4)));