    OVS_REQUIRES(ct->ct_lock)
{
    if (zone >= DEFAULT_ZONE && zone <= MAX_ZONE) {
        struct zone_limit *zl = xzalloc(sizeof *zl);
        zl->czl.limit = limit;
        zl->czl.zone = zone;
        zl->czl.zone_limit_seq = ct->zone_limit_seq++;
        uint32_t hash = zone_key_hash(zone, ct->hash_basis);
        hmap_insert(&ct->zone_limits, &zl->node, hash);
        return 0;
    } else {
        return EINVAL;
    }
}
    OVS_REQUIRES(ct->ct_lock)
{
    if (zone >= DEFAULT_ZONE && zone <= MAX_ZONE) {
        struct zone_limit *zl = xzalloc(sizeof *zl);
        zl->czl.limit = limit;
        zl->czl.zone = zone;
        zl->czl.zone_limit_seq = ct->zone_limit_seq++;
        uint32_t hash = zone_key_hash(zone, ct->hash_basis);
        hmap_insert(&ct->zone_limits, &zl->node, hash);
        return 0;
    } else {
        return EINVAL;
    }
}