void list(int argc, char *argv[]) { char *type; if (argc < 2) { printf("usage: %s models|processes|actions\n", argv[0]); return; } type = argv[1]; if (strncmp(type, "m", strlen("m")) == 0) { list_models(); } else if (strncmp(type, "p", strlen("p")) == 0) { list_instances(); } else if (strncmp(type, "a", strlen("a")) == 0) { list_actions(); } else { printf("usage: list models|processes|actions\n"); } }
int main( int argc, char *argv[] ) { command_options options; bool ret = parse_arguments( argc, argv, &options ); if ( !ret ) { usage(); exit( EXIT_FAILURE ); } init_log( basename( argv[ 0 ] ), LOG_OUTPUT_STDOUT ); init_vxlan_ctrl_client(); uint8_t status = SUCCEEDED; ret = false; switch ( options.type ) { case ADD_INSTANCE_REQUEST: { ret = add_instance( options.vni, options.ip_addr, options.port, options.aging_time, &status ); } break; case SET_INSTANCE_REQUEST: { ret = set_instance( options.vni, options.set_bitmap, options.ip_addr, options.port, options.aging_time, &status ); } break; case INACTIVATE_INSTANCE_REQUEST: { ret = inactivate_instance( options.vni, &status ); } break; case ACTIVATE_INSTANCE_REQUEST: { ret = activate_instance( options.vni, &status ); } break; case DEL_INSTANCE_REQUEST: { ret = delete_instance( options.vni, &status ); } break; case SHOW_GLOBAL_REQUEST: { ret = show_global( options.set_bitmap, &status ); } break; case LIST_INSTANCES_REQUEST: { ret = list_instances( options.vni, options.set_bitmap, &status ); } break; case SHOW_FDB_REQUEST: { ret = show_fdb( options.vni, &status ); } break; case ADD_FDB_ENTRY_REQUEST: { ret = add_fdb_entry( options.vni, options.eth_addr, options.ip_addr, options.aging_time, &status ); } break; case DEL_FDB_ENTRY_REQUEST: { ret = delete_fdb_entry( options.vni, options.eth_addr, &status ); } break; default: { printf( "Undefined command ( %#x ).\n", options.type ); status = OTHER_ERROR; ret = false; } break; } if ( !ret ) { printf( "Failed to execute a command ( %u ).\n", status ); } finalize_vxlan_ctrl_client(); finalize_log(); return status; }