![]() |
AnyConnect Secure Mobility Client 4.4.00243
|
00001 /************************************************************************** 00002 * Copyright (c) 2006, Cisco Systems, All Rights Reserved 00003 *************************************************************************** 00004 * 00005 * File: VpnStats.h 00006 * Date: 08/2006 00007 * 00008 *************************************************************************** 00009 * 00010 * VPN Statistics class implementation for the Client API. 00011 * 00012 ***************************************************************************/ 00013 #ifndef _VPNSTATS_ 00014 #define _VPNSTATS_ 00015 00016 #include "VPNStatsBase.h" 00017 00018 00019 /** 00020 * Use this class to retrieve statistics related to the tunnel and 00021 * protocol being used. 00022 * 00023 * The class has two uses: it provides a consistent localized label 00024 * definition mechanism and it uses this label mechanism to do 00025 * values lookups. 00026 * 00027 * Labels are automatically localized at application startup. 00028 * See the AnyConnect Release notes for additional information on localization. 00029 * 00030 * To retrieve a value for one of the labels, use the method getStatValue(). 00031 * For example, to get Time connected use: getStatValue(VPNStats::TimeConnected) 00032 */ 00033 00034 00035 class VPN_VPNAPI VPNStats : public VPNStatsBase 00036 { 00037 public: 00038 00039 /** 00040 * Get a list of Secure Routes. 00041 * Method returns a list of RouteInfo pointers 00042 */ 00043 const std::list<RouteInfo *> &getSecureRoutes(); 00044 00045 /** 00046 * Get a list of Nonsecure Routes. 00047 * Method returns a list of RouteInfo pointers 00048 */ 00049 const std::list<RouteInfo *> &getNonsecureRoutes(); 00050 00051 /** 00052 * Get a list of protocol Info objects. 00053 * Method returns a list of ProtocolInfo pointers 00054 */ 00055 const std::list<ProtocolInfo *> &getProtocolInfo(); 00056 00057 /** 00058 * Get a list of firewall Info objects. 00059 * Method returns a list of FirewallInfo pointers 00060 */ 00061 const std::list<FirewallInfo *> &getFirewallInfo(); 00062 00063 /** 00064 * Method used to retrieve statistics by name. 00065 */ 00066 const tstring &getStatValue(tstring &label); 00067 00068 /** 00069 * Return a translated stats label. As an example, passing 00070 * VPNStats::State will return a translated label for State text. 00071 * 00072 * NOTE: Do not use this translated label to retrieve stats 00073 * values; it is meant only as a label translation mechanism. 00074 */ 00075 static tstring getTranslatedLabel(tstring &label); 00076 00077 // 00078 // These static localized strings can be used in conjunction with the 00079 // getStatValue method to retrieve VPN statisitics. 00080 // 00081 static tstring State; /**< Current state (see ::VPNState) of 00082 the VPN tunnel. */ 00083 static tstring TimeConnected; /**< Time hh:mm:ss the VPN tunnel has 00084 been active. */ 00085 static tstring SessionDisconnect; /**< Estimate of time left until VPN session is 00086 disconnected due to ASA configured timeout. */ 00087 00088 // 00089 // Data byte/packet counts, does not include encap/encrypt overhead 00090 // 00091 static tstring BytesSent; /**< Bytes sent to the remote network. */ 00092 static tstring BytesReceived; /**< Bytes received from the remote 00093 network. */ 00094 static tstring PacketsSent; /**< Packets sent to the remote 00095 network. */ 00096 static tstring PacketsReceived; /**< Packets received from the remote 00097 network. */ 00098 00099 // 00100 // Control byte/packet count include size of DPD/Keepalive/etc 00101 // 00102 static tstring ControlBytesSent; /**< Control bytes sent to the 00103 remote gateway. */ 00104 static tstring ControlBytesReceived; /**< Control bytes received 00105 from the remote gateway. */ 00106 static tstring ControlPacketsSent; /**< Control packets sent to the 00107 remote gateway. */ 00108 static tstring ControlPacketsReceived; /**< Control packets received 00109 from the remote gateway. */ 00110 00111 // 00112 // Encrypted byte counts include both control and data, as well as 00113 // encryption and encapsulation headers 00114 // 00115 static tstring EncryptedBytesSent; /**< Encrypted bytes sent to the 00116 remote network. */ 00117 static tstring EncryptedBytesReceived; /**< Encrypted bytes received 00118 from the remote network. */ 00119 static tstring EncryptedPacketsSent; /**< Encrypted packets sent to the 00120 remote network. */ 00121 static tstring EncryptedPacketsReceived;/**< Encrypted packets received 00122 from the remote network. */ 00123 00124 // 00125 // Encrypted byte counts include both control and data (if protocol 00126 // is TLS), as well as encryption and encapsulation headers 00127 // 00128 static tstring CompressedBytesSent; /**< Compressed bytes sent 00129 to the remote network. */ 00130 static tstring CompressedBytesReceived; /**< Compressed bytes received 00131 from the remote network. */ 00132 static tstring CompressedPacketsSent; /**< Compressed packets sent 00133 to the remote network. */ 00134 static tstring CompressedPacketsReceived;/**< Compressed packets 00135 received from the remote 00136 network. */ 00137 00138 static tstring InboundDiscarded; /**< Incoming discarded bytes. */ 00139 static tstring OutboundDiscarded; /**< Outgoing discarded bytes. */ 00140 static tstring InboundBypassed; /**< Incoming skipped bytes. */ 00141 static tstring OutboundBypassed; /**< Outgoing skipped bytes. */ 00142 00143 static tstring ClientAddress; /**< Client IPv4 address. */ 00144 static tstring ServerAddress; /**< Remote gateway IP address. */ 00145 static tstring ClientAddressV6; /**< Client IPv6 address. */ 00146 00147 static tstring ServerHostName; /**< Host name of the remote gateway. */ 00148 static tstring ProxyAddress; /**< Proxy server IP address. */ 00149 static tstring ProxyHostName; /**< Proxy server host name. */ 00150 static tstring ProxyPort; /**< Port used for communicating with 00151 proxy server. */ 00152 static tstring TunnelingMode; /**< Mode IPv4 traffic is being passed over 00153 the tunnel. Values are "Tunnel All Traffic", 00154 "Split Include", "Split Exclude", 00155 "Drop All Traffic" or "Bypass All Traffic". */ 00156 static tstring TunnelingModeV6; /**< Mode IPv6 traffic is being passed over 00157 the tunnel. Values are "Tunnel All Traffic", 00158 "Split Include", "Split Exclude", 00159 "Drop All Traffic" or "Bypass All Traffic". */ 00160 00161 static tstring Enabled; /**< */ 00162 static tstring Disabled; /**< */ 00163 static tstring Unconfirmed; /**< Used for Secure Mobility Solution. If the 00164 WSA is not reachable from the agent, it might be 00165 due to private side proxy configuration. In such a case 00166 report Unconfirmed to the UI */ 00167 00168 static tstring FipsMode; /**< FIPS mode (Federal security standard). 00169 Values are "Enabled" or "Disabled" */ 00170 00171 static tstring TrustedNetworkDetectionMode; /** < Trusted Network Detection. 00172 Values are "Enabled" or "Disabled" */ 00173 static tstring AlwaysOnMode; /**< Always On. Values are "Enabled" or 00174 "Disabled" */ 00175 00176 static tstring NetworkStatus; /**< Network Status. 00177 Values include are: "No Networks Detected", 00178 "DNS Services Unavailable", 00179 "Web Authentication Required", 00180 "Proxy Authentication Required", 00181 "Access Restricted", 00182 "Access Unrestricted" */ 00183 00184 static tstring DAPMessage; /**< DAP message received from gateway. Used for Quarantine 00185 mode, etc. */ 00186 00187 static tstring MUSHost; /**< MUS Host delivered from secure gateway. */ 00188 static tstring MUSStatus; /**< MUS Status: Enabled, Disabled. */ 00189 00190 static tstring AdministrativeDomain; /**<Administrative Domain Name: 00191 - domain name of the SG that the user connects to for the first time 00192 - "Admin Defined" if there are authorized SGs specified in 00193 the local policy file 00194 - "Not Applicable" otherwise. */ 00195 00196 static tstring ProfileName; /**< Active profile name. */ 00197 00198 VPNStats(); 00199 00200 virtual ~VPNStats(); 00201 00202 }; 00203 00204 00205 #endif // _VPNSATS_