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); }
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); }
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; }
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; }