Permalink
Fetching contributors…
Cannot retrieve contributors at this time
214 lines (198 sloc) 7.37 KB
/*
* Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
*/
/**
* This UVE provides information associated with a virtual network
* such as list of networks connected, vms spawned , ACls associated
* and input and output statistics
*/
/**
* Structure definition for Tunnel nexthop statistics
*/
struct UveTunnelNhStats {
1: i64 udp_encaps; //used for mirroring
2: i64 mpls_over_udp_encaps;
3: i64 mpls_over_gre_encaps;
4: i64 vxlan_encaps;
}
/**
* Structure definition for multicast nexthop statistics
*/
struct UveMulticastNhStats {
1: i64 source_replication_forwards; //evpn_composites
2: i64 edge_replication_forwards; //fabric_composites
3: i64 local_vm_l3_forwards; //encap_composites
4: i64 total_multicast_forwards; //l2_mcast_composites
}
/**
* Structure definition for nexthop statistics
*/
struct UveNhStats {
1: i64 discards;
2: i64 resolves;
3: i64 l3_receives;
4: i64 l2_receives;
5: i64 local_vm_l3_forwards; //encaps
6: i64 local_vm_l2_forwards; //l2_encaps
7: i64 vrf_translates;
8: i64 ecmp_forwards; //ecmp_composites
9: UveTunnelNhStats tunnel_nh_stats;
10: UveMulticastNhStats comp_nh_stats;
}
/**
* Structure definition for offload packet statistics
*/
struct UveOffloadStats {
1: i64 gro;
}
/**
* Structure definition for ARP packet statistics
*/
struct UveArpResponses {
1: i64 proxies;
2: i64 stitches;
3: i64 floods;
}
/**
* Structure definition for ARP stats of virtual-machine-interfaces
*/
struct UveVmiStats {
1: UveArpResponses stats;
}
/**
* Structure definition for ARP stats of physical interface
*/
struct UvePhyIntfStats {
1: UveArpResponses stats;
}
/**
* Structure definition for ARP statistics of VMI and Physical interface
*/
struct UveArpStats {
1: UveVmiStats from_vm_interface;
2: UvePhyIntfStats from_physical_interface;
}
/**
* Structure definition for VRF statistics
*/
struct UveVrfStats {
1: string name (aggtype="listkey")
2: i64 diag_packet_count;
3: i64 unknown_unicast_floods;
4: UveArpStats arp_packet_counts;
5: UveOffloadStats offload_packet_counts;
6: UveNhStats nh_packet_counts;
}
/**
* Structure definition for VN statistics with respect to other VN
*/
struct InterVnStats {
/** Name of virtual-network */
1: string other_vn;
/** Name of agent sending this information */
2: string vrouter;
/** Ingress packet count */
3: u64 in_tpkts;
/** Ingress byte count */
4: u64 in_bytes;
/** Egress packet count */
5: u64 out_tpkts;
/** Egress byte count */
6: u64 out_bytes;
}
/**
* Structure definition for VN statistics with respect to other VN for a
* specific direction
*/
struct UveInterVnStats {
/** Name of virtual-network */
1: string other_vn (aggtype="listkey")
/** Packet count */
2: i64 tpkts;
/** Byte count */
3: i64 bytes;
}
/**
* Structure definition for number of flow hits for a given Network Policy
* ACL Rule
*/
struct NetworkPolicyRuleStats {
/** UUID of Network policy rule */
1: string rule;
/** Number of flow hits for the rule */
2: u64 count;
}
/**
* Structure definition for virtual-network object details
*/
struct UveVirtualNetworkAgent {
/** Name of virtual-network */
1: string name (key="ObjectVNTable")
/** Value 'true' indicates VN is removed. Holds value of 'false' otherwise*/
2: optional bool deleted
/** Count of rules in the ACL associated with the VN */
3: optional i32 total_acl_rules;
/** List of configuration names of interfaces part of this VN */
4: optional list<string> interface_list (aggtype="union")
/** Incoming statistics for this VN from other VN
* Derived from flow statistics.
*/
9: optional list<UveInterVnStats> in_stats (aggtype="append")
/** Outgoing statistics from this VN to other VN
* Derived from flow statistics.
*/
10: optional list<UveInterVnStats> out_stats (aggtype="append")
/** List of configuration names of VMs part of this VN */
11: optional list<string> virtualmachine_list (aggtype="union")
/** Name of ACL associated with the VN */
12: optional string acl;
/** Name of Mirror ACL associated with the VN */
13: optional string mirror_acl;
/** Number of flows in this VN */
14: optional i32 flow_count;
/** Total number of floating-IPs part of this VN. This is sum of
* floating-IPs associated with all VMIs that are part of this VN
*/
15: optional i32 associated_fip_count (aggtype="sum")
/** Bitmap of UDP source port numbers that packets on this VN have used */
16: optional list<u32> udp_sport_bitmap;
/** Bitmap of UDP destination port numbers that packets on this VN have
* used
*/
17: optional list<u32> udp_dport_bitmap;
/** Bitmap of TCP source port numbers that packets on this VM have used */
18: optional list<u32> tcp_sport_bitmap;
/** Bitmap of TCP destination port numbers that packets on this VM have
* used
*/
19: optional list<u32> tcp_dport_bitmap;
/** Ingress bandwidth usage in bps. Derived from flow-statistics */
20: optional u64 in_bandwidth_usage (aggtype="sum")
/** Egress bandwidth usage in bps. Derived from flow-statistics */
21: optional u64 out_bandwidth_usage (aggtype="sum")
/** Statistics of VRF associated with VN. The list can have atmost
* one element
*/
22: optional list<UveVrfStats> vrf_stats_list (aggtype="append")
/** Derived from flow statistics */
/** @display_name: Statistics of VN with respect to other VNs */
23: optional list<InterVnStats> vn_stats (tags=".other_vn,.vrouter",uve_type=".other_vn:virtual_network")
/** Number of ingress flows in this VN */
24: optional u32 ingress_flow_count (aggtype="sum")
/** Number of egress flows in this VN */
25: optional u32 egress_flow_count (aggtype="sum")
/** List of Rule UUIDs along with count of number flows that matched that
* rule
*/
/** @display_name:VN ACL Rule Statistics*/
26: optional list<NetworkPolicyRuleStats> policy_rule_stats (tags=".rule",aggtype="union")
}
/**
* @description: Uve for virtual-network object
* @type: uve
* @object: virtual-network
*/
uve sandesh UveVirtualNetworkAgentTrace {
/** virtual-network object details */
1: UveVirtualNetworkAgent data;
}