void ipv4_fcf(struct fins_module *module, struct finsFrame *ff) { PRINT_DEBUG("Entered: module=%p, ff=%p, meta=%p", module, ff, ff->metaData); //TODO make sure is meant for IP, filter out FCF sent through flows w/multi dest //TODO fill out switch (ff->ctrlFrame.opcode) { case CTRL_ALERT: PRINT_DEBUG("opcode=CTRL_ALERT (%d)", CTRL_ALERT); PRINT_WARN("todo"); module_reply_fcf(module, ff, FCF_FALSE, 0); break; case CTRL_ALERT_REPLY: PRINT_DEBUG("opcode=CTRL_ALERT_REPLY (%d)", CTRL_ALERT_REPLY); PRINT_WARN("todo"); freeFinsFrame(ff); break; case CTRL_READ_PARAM: PRINT_DEBUG("opcode=CTRL_READ_PARAM (%d)", CTRL_READ_PARAM); ipv4_read_param(module, ff); break; case CTRL_READ_PARAM_REPLY: PRINT_DEBUG("opcode=CTRL_READ_PARAM_REPLY (%d)", CTRL_READ_PARAM_REPLY); PRINT_WARN("todo"); freeFinsFrame(ff); break; case CTRL_SET_PARAM: PRINT_DEBUG("opcode=CTRL_SET_PARAM (%d)", CTRL_SET_PARAM); ipv4_set_param(module, ff); break; case CTRL_SET_PARAM_REPLY: PRINT_DEBUG("opcode=CTRL_SET_PARAM_REPLY (%d)", CTRL_SET_PARAM_REPLY); PRINT_WARN("todo"); freeFinsFrame(ff); break; case CTRL_EXEC: PRINT_DEBUG("opcode=CTRL_EXEC (%d)", CTRL_EXEC); ipv4_exec(module, ff); break; case CTRL_EXEC_REPLY: PRINT_DEBUG("opcode=CTRL_EXEC_REPLY (%d)", CTRL_EXEC_REPLY); ipv4_exec_reply(module, ff); break; case CTRL_ERROR: PRINT_DEBUG("opcode=CTRL_ERROR (%d)", CTRL_ERROR); ipv4_error(module, ff); break; default: PRINT_ERROR("opcode=default (%d)", ff->ctrlFrame.opcode); exit(-1); break; } }
void ipv4_fcf(struct finsFrame *ff) { PRINT_DEBUG("Entered: ff=%p, meta=%p", ff, ff->metaData); //TODO fill out switch (ff->ctrlFrame.opcode) { case CTRL_ALERT: PRINT_DEBUG("opcode=CTRL_ALERT (%d)", CTRL_ALERT); break; case CTRL_ALERT_REPLY: PRINT_DEBUG("opcode=CTRL_ALERT_REPLY (%d)", CTRL_ALERT_REPLY); break; case CTRL_READ_PARAM: PRINT_DEBUG("opcode=CTRL_READ_PARAM (%d)", CTRL_READ_PARAM); //ipv4_read_param(ff); //TODO read interface_mac? break; case CTRL_READ_PARAM_REPLY: PRINT_DEBUG("opcode=CTRL_READ_PARAM_REPLY (%d)", CTRL_READ_PARAM_REPLY); break; case CTRL_SET_PARAM: PRINT_DEBUG("opcode=CTRL_SET_PARAM (%d)", CTRL_SET_PARAM); //ipv4_set_param(ff); //TODO set interface_mac? break; case CTRL_SET_PARAM_REPLY: PRINT_DEBUG("opcode=CTRL_SET_PARAM_REPLY (%d)", CTRL_SET_PARAM_REPLY); break; case CTRL_EXEC: PRINT_DEBUG("opcode=CTRL_EXEC (%d)", CTRL_EXEC); //ipv4_exec(ff); break; case CTRL_EXEC_REPLY: PRINT_DEBUG("opcode=CTRL_EXEC_REPLY (%d)", CTRL_EXEC_REPLY); ipv4_exec_reply(ff); break; case CTRL_ERROR: PRINT_DEBUG("opcode=CTRL_ERROR (%d)", CTRL_ERROR); break; default: PRINT_DEBUG("opcode=default (%d)", ff->ctrlFrame.opcode); break; } }