static int handle_pool4_rm(struct xlator *jool, struct genl_info *info, union request_pool4 *request) { int error; log_debug("Removing elements from pool4."); error = pool4db_rm_usr(jool->nat64.pool4, &request->rm.entry); if (xlat_is_nat64() && !request->rm.quick) { bib_rm_range(jool, request->rm.entry.proto, &request->rm.entry.range); } return nlcore_respond(info, error); }
static bool simple_session(void) { struct ipv4_range range; bool success = true; if (!insert_test_sessions()) return false; /* ---------------------------------------------------------- */ log_debug("Deleting sessions by BIB."); range.prefix.address.s_addr = cpu_to_be32(0xcb007101u); range.prefix.len = 32; range.ports.min = 1; range.ports.max = 1; bib_rm_range(db, PROTO, &range); sessions[1][1][2][2] = NULL; sessions[1][1][2][1] = NULL; sessions[1][1][1][1] = NULL; sessions[1][1][1][2] = NULL; success &= test_db(); /* ---------------------------------------------------------- */ log_debug("Deleting again."); bib_rm_range(db, PROTO, &range); success &= test_db(); /* ---------------------------------------------------------- */ success &= flush(); if (!insert_test_sessions()) return false; /* ---------------------------------------------------------- */ log_debug("Deleting by range (all addresses, lower ports)."); range.prefix.address.s_addr = cpu_to_be32(0xcb007100u); range.prefix.len = 30; range.ports.min = 0; range.ports.max = 1; bib_rm_range(db, PROTO, &range); sessions[2][1][2][1] = NULL; sessions[2][1][1][1] = NULL; sessions[1][1][2][2] = NULL; sessions[2][1][2][2] = NULL; sessions[2][1][1][2] = NULL; sessions[1][1][2][1] = NULL; sessions[1][1][1][1] = NULL; sessions[1][1][1][2] = NULL; success &= test_db(); /* ---------------------------------------------------------- */ success &= flush(); if (!insert_test_sessions()) return false; /* ---------------------------------------------------------- */ log_debug("Deleting by range (lower addresses, all ports)."); range.prefix.address.s_addr = cpu_to_be32(0xcb007100u); range.prefix.len = 31; range.ports.min = 0; range.ports.max = 65535; bib_rm_range(db, PROTO, &range); sessions[1][2][2][2] = NULL; sessions[1][1][2][2] = NULL; sessions[1][2][1][1] = NULL; sessions[1][1][2][1] = NULL; sessions[1][2][2][1] = NULL; sessions[1][2][1][2] = NULL; sessions[1][1][1][1] = NULL; sessions[1][1][1][2] = NULL; success &= test_db(); /* ---------------------------------------------------------- */ success &= flush(); return success; }