vmmd_stats: remove ifname, use bridge (overwrite bridge in gather)

This commit is contained in:
Hannes Mehnert 2019-01-27 22:31:04 +01:00
parent 55d7fd38ac
commit 4b4d1208db
6 changed files with 26 additions and 30 deletions

View file

@ -161,7 +161,7 @@ let add_pid t vmid vmmdev pid nics =
match wrap sysctl_ifdata id with match wrap sysctl_ifdata id with
| None -> go cnt acc (pred id) | None -> go cnt acc (pred id)
| Some ifd -> | Some ifd ->
match List.find_opt (fun (_, tap) -> String.equal tap ifd.Stats.ifname) nics with match List.find_opt (fun (_, tap) -> String.equal tap ifd.Stats.bridge) nics with
| Some (bridge, tap) -> go (pred cnt) ((bridge, id, tap) :: acc) (pred id) | Some (bridge, tap) -> go (pred cnt) ((bridge, id, tap) :: acc) (pred id)
| None -> go cnt acc (pred id) | None -> go cnt acc (pred id)
else else

View file

@ -198,26 +198,25 @@ CAMLprim value vmmanage_sysctl_ifdata (value num) {
if (sysctl(name, nitems(name), &data, &datalen, NULL, 0) != 0) if (sysctl(name, nitems(name), &data, &datalen, NULL, 0) != 0)
uerror("sysctl", Nothing); uerror("sysctl", Nothing);
res = caml_alloc(19, 0); res = caml_alloc(18, 0);
Store_field(res, 0, caml_copy_string(data.ifmd_name)); Store_field(res, 0, caml_copy_string(data.ifmd_name));
Store_field(res, 1, caml_copy_string(data.ifmd_name)); Store_field(res, 1, Val32(data.ifmd_flags));
Store_field(res, 2, Val32(data.ifmd_flags)); Store_field(res, 2, Val32(data.ifmd_snd_len));
Store_field(res, 3, Val32(data.ifmd_snd_len)); Store_field(res, 3, Val32(data.ifmd_snd_maxlen));
Store_field(res, 4, Val32(data.ifmd_snd_maxlen)); Store_field(res, 4, Val32(data.ifmd_snd_drops));
Store_field(res, 5, Val32(data.ifmd_snd_drops)); Store_field(res, 5, Val32(data.ifmd_data.ifi_mtu));
Store_field(res, 6, Val32(data.ifmd_data.ifi_mtu)); Store_field(res, 6, Val64(data.ifmd_data.ifi_baudrate));
Store_field(res, 7, Val64(data.ifmd_data.ifi_baudrate)); Store_field(res, 7, Val64(data.ifmd_data.ifi_ipackets));
Store_field(res, 8, Val64(data.ifmd_data.ifi_ipackets)); Store_field(res, 8, Val64(data.ifmd_data.ifi_ierrors));
Store_field(res, 9, Val64(data.ifmd_data.ifi_ierrors)); Store_field(res, 9, Val64(data.ifmd_data.ifi_opackets));
Store_field(res, 10, Val64(data.ifmd_data.ifi_opackets)); Store_field(res, 10, Val64(data.ifmd_data.ifi_oerrors));
Store_field(res, 11, Val64(data.ifmd_data.ifi_oerrors)); Store_field(res, 11, Val64(data.ifmd_data.ifi_collisions));
Store_field(res, 12, Val64(data.ifmd_data.ifi_collisions)); Store_field(res, 12, Val64(data.ifmd_data.ifi_ibytes));
Store_field(res, 13, Val64(data.ifmd_data.ifi_ibytes)); Store_field(res, 13, Val64(data.ifmd_data.ifi_obytes));
Store_field(res, 14, Val64(data.ifmd_data.ifi_obytes)); Store_field(res, 14, Val64(data.ifmd_data.ifi_imcasts));
Store_field(res, 15, Val64(data.ifmd_data.ifi_imcasts)); Store_field(res, 15, Val64(data.ifmd_data.ifi_omcasts));
Store_field(res, 16, Val64(data.ifmd_data.ifi_omcasts)); Store_field(res, 16, Val64(data.ifmd_data.ifi_iqdrops));
Store_field(res, 17, Val64(data.ifmd_data.ifi_iqdrops)); Store_field(res, 17, Val64(data.ifmd_data.ifi_oqdrops));
Store_field(res, 18, Val64(data.ifmd_data.ifi_oqdrops));
CAMLreturn(res); CAMLreturn(res);
} }

View file

@ -149,8 +149,8 @@ module P = struct
] ]
in in
let fields = List.map (fun (k, v) -> k ^ "=" ^ v) fields in let fields = List.map (fun (k, v) -> k ^ "=" ^ v) fields in
Printf.sprintf "interface,vm=%s,ifname=%s,bridge=%s %s" Printf.sprintf "interface,vm=%s,bridge=%s %s"
vm ifd.ifname ifd.bridge (String.concat ~sep:"," fields) vm ifd.bridge (String.concat ~sep:"," fields)
end end
let my_version = `AV3 let my_version = `AV3

View file

@ -144,15 +144,14 @@ let int32 =
let ifdata = let ifdata =
let open Stats in let open Stats in
let f (bridge, (ifname, (flags, (send_length, (max_send_length, (send_drops, (mtu, (baudrate, (input_packets, (input_errors, (output_packets, (output_errors, (collisions, (input_bytes, (output_bytes, (input_mcast, (output_mcast, (input_dropped, output_dropped)))))))))))))))))) = let f (bridge, (flags, (send_length, (max_send_length, (send_drops, (mtu, (baudrate, (input_packets, (input_errors, (output_packets, (output_errors, (collisions, (input_bytes, (output_bytes, (input_mcast, (output_mcast, (input_dropped, output_dropped))))))))))))))))) =
{ bridge ; ifname; flags; send_length; max_send_length; send_drops; mtu; baudrate; input_packets; input_errors; output_packets; output_errors; collisions; input_bytes; output_bytes; input_mcast; output_mcast; input_dropped; output_dropped } { bridge ; flags; send_length; max_send_length; send_drops; mtu; baudrate; input_packets; input_errors; output_packets; output_errors; collisions; input_bytes; output_bytes; input_mcast; output_mcast; input_dropped; output_dropped }
and g i = and g i =
(i.bridge, (i.ifname, (i.flags, (i.send_length, (i.max_send_length, (i.send_drops, (i.mtu, (i.baudrate, (i.input_packets, (i.input_errors, (i.output_packets, (i.output_errors, (i.collisions, (i.input_bytes, (i.output_bytes, (i.input_mcast, (i.output_mcast, (i.input_dropped, i.output_dropped)))))))))))))))))) (i.bridge, (i.flags, (i.send_length, (i.max_send_length, (i.send_drops, (i.mtu, (i.baudrate, (i.input_packets, (i.input_errors, (i.output_packets, (i.output_errors, (i.collisions, (i.input_bytes, (i.output_bytes, (i.input_mcast, (i.output_mcast, (i.input_dropped, i.output_dropped)))))))))))))))))
in in
Asn.S.map f g @@ Asn.S.map f g @@
Asn.S.(sequence @@ Asn.S.(sequence @@
(required ~label:"bridge" utf8_string) (required ~label:"bridge" utf8_string)
@ (required ~label:"ifname" utf8_string)
@ (required ~label:"flags" int32) @ (required ~label:"flags" int32)
@ (required ~label:"send_length" int32) @ (required ~label:"send_length" int32)
@ (required ~label:"max_send_length" int32) @ (required ~label:"max_send_length" int32)

View file

@ -237,7 +237,6 @@ module Stats = struct
type ifdata = { type ifdata = {
bridge : string ; bridge : string ;
ifname : string ;
flags : int32 ; flags : int32 ;
send_length : int32 ; send_length : int32 ;
max_send_length : int32 ; max_send_length : int32 ;
@ -258,8 +257,8 @@ module Stats = struct
} }
let pp_ifdata ppf i = let pp_ifdata ppf i =
Fmt.pf ppf "bridge %s ifname %s flags %lX send_length %lu max_send_length %lu send_drops %lu mtu %lu baudrate %Lu input_packets %Lu input_errors %Lu output_packets %Lu output_errors %Lu collisions %Lu input_bytes %Lu output_bytes %Lu input_mcast %Lu output_mcast %Lu input_dropped %Lu output_dropped %Lu" Fmt.pf ppf "bridge %s flags %lX send_length %lu max_send_length %lu send_drops %lu mtu %lu baudrate %Lu input_packets %Lu input_errors %Lu output_packets %Lu output_errors %Lu collisions %Lu input_bytes %Lu output_bytes %Lu input_mcast %Lu output_mcast %Lu input_dropped %Lu output_dropped %Lu"
i.bridge i.ifname i.flags i.send_length i.max_send_length i.send_drops i.mtu i.baudrate i.input_packets i.input_errors i.output_packets i.output_errors i.collisions i.input_bytes i.output_bytes i.input_mcast i.output_mcast i.input_dropped i.output_dropped i.bridge i.flags i.send_length i.max_send_length i.send_drops i.mtu i.baudrate i.input_packets i.input_errors i.output_packets i.output_errors i.collisions i.input_bytes i.output_bytes i.input_mcast i.output_mcast i.input_dropped i.output_dropped
type t = rusage * kinfo_mem option * vmm option * ifdata list type t = rusage * kinfo_mem option * vmm option * ifdata list
let pp ppf (ru, mem, vmm, ifs) = let pp ppf (ru, mem, vmm, ifs) =

View file

@ -118,7 +118,6 @@ module Stats : sig
type ifdata = { type ifdata = {
bridge : string; bridge : string;
ifname : string;
flags : int32; flags : int32;
send_length : int32; send_length : int32;
max_send_length : int32; max_send_length : int32;