AnyConnect Secure Mobility Client 4.4.00243

include/VPNStats.h

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_