Beispiel #1
0
static int
vr_vrouter_op(struct nl_client *cl)
{
    int ret = 0;

    switch (vrouter_op) {
    case SANDESH_OP_GET:
        ret = vr_send_vrouter_get(cl, 0);
        break;

    case SANDESH_OP_ADD:
        if (opt[SET_LOG_LEVEL_INDEX] || opt[LOG_ENABLE_INDEX]) {
            ret = vr_send_vrouter_set_logging(cl, 0, log_level,
                    log_types_to_enable.types, log_types_to_enable.size,
                    log_types_to_disable.types, log_types_to_disable.size);
        } else {
            ret = vr_send_vrouter_set_runtime_opts(cl, 0,
                    perfr, perfs, from_vm_mss_adj, to_vm_mss_adj,
                    perfr1, perfr2, perfr3, perfp, perfq1,
                    perfq2, perfq3, udp_coff, flow_hold_limit,
                    mudp);
        }
        break;

    default:
        ret = -EINVAL;
        break;
    }

    if (ret < 0)
        return ret;

    return vr_recvmsg(cl, false);
}
Beispiel #2
0
static int
vr_get_mem_stats(struct nl_client *cl)
{
    int ret;

    ret = vr_send_mem_stats_get(cl, 0);
    if (ret < 0)
        return ret;

    return vr_recvmsg(cl, false);
}
Beispiel #3
0
static int
vr_vxlan_op(struct nl_client *cl)
{
    int ret;
    bool dump = false;

op_retry:
    switch (vxlan_op) {
    case SANDESH_OP_ADD:
        ret = vr_send_vxlan_add(cl, 0, vxlan_vnid, vxlan_nh);
        break;

    case SANDESH_OP_DELETE:
        ret = vr_send_vxlan_delete(cl, 0, vxlan_vnid);
        break;

    case SANDESH_OP_DUMP:
        dump = true;
        ret = vr_send_vxlan_dump(cl, 0, dump_marker);
        break;

    case SANDESH_OP_GET:
        ret = vr_send_vxlan_get(cl, 0, vxlan_vnid);
        break;

    default:
        ret = -EINVAL;
        break;
    }


    if (ret < 0)
        return ret;

    ret = vr_recvmsg(cl, dump);
    if (ret <= 0)
        return ret;

    if (dump_pending)
        goto op_retry;

    return 0;
}
Beispiel #4
0
static int
vr_mirror_op(struct nl_client *cl)
{
    int ret = 0;
    bool dump = false;

op_retry:
    switch (mirror_op) {
    case SANDESH_OP_ADD:
        ret = vr_send_mirror_add(cl, 0, mirror_index,
                mirror_nh, mirror_flags, vni_id);
        break;

    case SANDESH_OP_DEL:
        ret = vr_send_mirror_delete(cl, 0, mirror_index);
        break;

    case SANDESH_OP_DUMP:
        dump = true;
        ret = vr_send_mirror_dump(cl, 0, dump_marker);
        break;

    case SANDESH_OP_GET:
        ret = vr_send_mirror_get(cl, 0, mirror_index);
        break;

    default:
        ret = -EINVAL;
        break;
    }

    if (ret < 0)
        return ret;

    ret = vr_recvmsg(cl, dump);
    if (ret <= 0)
        return ret;

    if (dump_pending)
        goto op_retry;

    return 0;
}