master-thesis/p4src/actions_controller.p4

32 lines
739 B
Plaintext

#ifndef NICO_CONTROLLER
#define NICO_CONTROLLER
/********************** GENERAL ACTIONS ***********************************/
#ifndef _SUME_SWITCH_P4_
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = standard_metadata.ingress_port;
clone3(CloneType.I2E, 100, meta);
}
#else
#include "action_egress.p4"
action controller_reply(task_t task) {
meta.task = task;
meta.ingress_port = sume_metadata.src_port;
set_egress_port(4); /* port1 = 1, port2 = 2, port3=4 */
}
#endif /* _SUME_SWITCH_P4_ */
action controller_debug_table_id(table_t table_id) {
meta.table_id = table_id;
controller_reply(TASK_DEBUG);
}
action controller_debug() {
controller_reply(TASK_DEBUG);
}
#endif