AnyConnect Secure Mobility Client  4.0.00061
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 
00086         // 
00087         // Data byte/packet counts, does not include encap/encrypt overhead
00088         //
00089         static tstring BytesSent;       /**< Bytes sent to the remote network. */
00090         static tstring BytesReceived;   /**< Bytes received from the remote
00091                                              network. */
00092         static tstring PacketsSent;     /**< Packets sent to the remote
00093                                              network. */
00094         static tstring PacketsReceived; /**< Packets received from the remote
00095                                              network. */
00096 
00097         //
00098         // Control byte/packet count include size of DPD/Keepalive/etc
00099         //
00100         static tstring ControlBytesSent;        /**< Control bytes sent to the
00101                                                      remote gateway. */
00102         static tstring ControlBytesReceived;    /**< Control bytes received
00103                                                      from the remote gateway. */
00104         static tstring ControlPacketsSent;      /**< Control packets sent to the
00105                                                      remote gateway. */
00106         static tstring ControlPacketsReceived;  /**< Control packets received
00107                                                      from the remote gateway. */
00108 
00109         //
00110         // Encrypted byte counts include both control and data, as well as 
00111         // encryption and encapsulation headers
00112         //
00113         static tstring EncryptedBytesSent;      /**< Encrypted bytes sent to the
00114                                                      remote network. */
00115         static tstring EncryptedBytesReceived;  /**< Encrypted bytes received
00116                                                      from the remote network. */
00117         static tstring EncryptedPacketsSent;    /**< Encrypted packets sent to the
00118                                                      remote network. */
00119         static tstring EncryptedPacketsReceived;/**< Encrypted packets received
00120                                                      from the remote network. */
00121 
00122         //
00123         // Encrypted byte counts include both control and data (if protocol
00124         // is TLS), as well as encryption and encapsulation headers
00125         //
00126         static tstring CompressedBytesSent;      /**< Compressed bytes sent
00127                                                       to the remote network. */
00128         static tstring CompressedBytesReceived;  /**< Compressed bytes received
00129                                                       from the remote network. */
00130         static tstring CompressedPacketsSent;    /**< Compressed packets sent
00131                                                       to the remote network. */
00132         static tstring CompressedPacketsReceived;/**< Compressed packets
00133                                                       received from the remote
00134                                                       network. */
00135 
00136         static tstring InboundDiscarded;    /**< Incoming discarded bytes. */
00137         static tstring OutboundDiscarded;   /**< Outgoing discarded bytes. */
00138         static tstring InboundBypassed;     /**< Incoming skipped bytes. */
00139         static tstring OutboundBypassed;    /**< Outgoing skipped bytes. */
00140 
00141         static tstring ClientAddress;   /**< Client IPv4 address. */
00142         static tstring ServerAddress;   /**< Remote gateway IP address. */
00143         static tstring ClientAddressV6; /**< Client IPv6 address. */
00144 
00145         static tstring ServerHostName;  /**< Host name of the remote gateway. */
00146         static tstring ProxyAddress;    /**< Proxy server IP address. */
00147         static tstring ProxyHostName;   /**< Proxy server host name. */
00148         static tstring ProxyPort;       /**< Port used for communicating with
00149                                              proxy server. */
00150         static tstring TunnelingMode;   /**< Mode IPv4 traffic is being passed over
00151                                              the tunnel.  Values are "Tunnel All Traffic",
00152                                              "Split Include", "Split Exclude",
00153                                              "Drop All Traffic" or "Bypass All Traffic". */
00154         static tstring TunnelingModeV6; /**< Mode IPv6 traffic is being passed over
00155                                              the tunnel.  Values are "Tunnel All Traffic",
00156                                              "Split Include", "Split Exclude",
00157                                              "Drop All Traffic" or "Bypass All Traffic". */
00158 
00159         static tstring Enabled;     /**< */
00160         static tstring Disabled;    /**< */
00161         static tstring Unconfirmed;     /**< Used for Secure Mobility Solution. If the 
00162                                              WSA is not reachable from the agent, it might be 
00163                                              due to private side proxy configuration. In such a case
00164                                              report Unconfirmed to the UI */
00165 
00166         static tstring FipsMode;        /**< FIPS mode (Federal security standard).
00167                                              Values are "Enabled" or "Disabled" */
00168 
00169         static tstring TrustedNetworkDetectionMode;  /** < Trusted Network Detection.
00170                                                            Values are "Enabled" or "Disabled" */
00171         static tstring AlwaysOnMode;    /**< Always On. Values are "Enabled" or 
00172                                              "Disabled" */
00173 
00174         static tstring NetworkStatus;     /**< Network Status.
00175                                                Values include are: "No Networks Detected",
00176                                                                    "DNS Services Unavailable",
00177                                                                    "Web Authentication Required",
00178                                                                    "Proxy Authentication Required",
00179                                                                    "Access Restricted",
00180                                                                    "Access Unrestricted" */
00181 
00182         static tstring DAPMessage;     /**< DAP message received from gateway.  Used for Quarantine
00183                                             mode, etc. */
00184 
00185         static tstring MUSHost;        /**< MUS Host delivered from secure gateway. */
00186         static tstring MUSStatus;      /**< MUS Status: Enabled, Disabled. */
00187 
00188         static tstring AdministrativeDomain;   /**<Administrative Domain Name: 
00189                                                    - domain name of the SG that the user connects to for the first time
00190                                                    - "Admin Defined" if there are authorized SGs specified in 
00191                                                      the local policy file
00192                                                    - "Not Applicable" otherwise. */
00193 
00194         static tstring ProfileName;      /**< Active profile name. */
00195 
00196         VPNStats();
00197 
00198         virtual ~VPNStats();
00199 
00200 };
00201 
00202 
00203 #endif // _VPNSATS_