static void
parse_long_opts(int opt_index, char *opt_arg)
{
    errno = 0;
    switch (opt_index) {
    case COMMAND_OPT_INDEX:
        usage_internal();
        break;

    case CREATE_OPT_INDEX:
        vxlan_op = SANDESH_OP_ADD;
        vxlan_vnid = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    case DELETE_OPT_INDEX:
        vxlan_op = SANDESH_OP_DELETE;
        vxlan_vnid = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    case DUMP_OPT_INDEX:
        vxlan_op = SANDESH_OP_DUMP;
        break;

    case GET_OPT_INDEX:
        vxlan_op = SANDESH_OP_GET;
        vxlan_vnid = strtoul(opt_arg, NULL, 0);
        if (errno)
            Usage();
        break;

    case HELP_OPT_INDEX:
        Usage();
        break;

    case NEXTHOP_OPT_INDEX:
        vxlan_nh = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    default:
        Usage();
        break;
    }

    return;
}
static void
validate_options(void)
{
    int sum_op = create_set + delete_set + dump_set + get_set;

    if (sum_op > 1 || vxlan_op < 0)
        Usage();

    if (create_set)
        if (!nh_set)
            usage_internal();

    if (vnid_set)
        if (!create_set || !delete_set || !get_set)
            usage_internal();

    return;
}
Exemple #3
0
static void
parse_long_opts(int opt_index, char *opt_arg)
{
    errno = 0;

    switch (opt_index) {
    case COMMAND_OPT_INDEX:
        usage_internal();
        break;

    case CREATE_OPT_INDEX:
        mirror_op = SANDESH_OP_ADD;
        mirror_index = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    case DELETE_OPT_INDEX:
        mirror_op = SANDESH_OP_DEL;
        mirror_index = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    case DUMP_OPT_INDEX:
        mirror_op = SANDESH_OP_DUMP;
        break;

    case GET_OPT_INDEX:
        mirror_op = SANDESH_OP_GET;
        mirror_index = strtoul(opt_arg, NULL, 0);
        if (errno)
            Usage();
        break;

    case HELP_OPT_INDEX:
        Usage();
        break;

    case NEXTHOP_OPT_INDEX:
        mirror_nh = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    case DYNAMIC_OPT_INDEX:
        mirror_flags = VR_MIRROR_FLAG_DYNAMIC;
        break;

    case VNI_OPT_INDEX:
        vni_id = strtoul(opt_arg, NULL, 0);
        if (errno)
            usage_internal();
        break;

    default:
        Usage();
        break;
    }

    return;
}