1/* 2 * Copyright (c) 2008 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * The contents of this file constitute Original Code as defined in and 7 * are subject to the Apple Public Source License Version 1.1 (the 8 * "License"). You may not use this file except in compliance with the 9 * License. Please obtain a copy of the License at 10 * http://www.apple.com/publicsource and read it before using this file. 11 * 12 * This Original Code and all software distributed under the License are 13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER 14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the 17 * License for the specific language governing rights and limitations 18 * under the License. 19 * 20 * @APPLE_LICENSE_HEADER_END@ 21 */ 22 23#ifndef _IPSECMESSAGETRACER_H 24#define _IPSECMESSAGETRACER_H 25 26#import <asl.h> 27 28#define CONSTSTR(str) (const char *)str 29 30#define L2TPIPSECVPN_CONNECTION_ESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.disconnect.l2tpipsec") 31#define CISCOIPSECVPN_CONNECTION_ESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.disconnect.ciscoipsec") 32#define BTMMIPSEC_CONNECTION_ESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.disconnect.btmm") 33#define PLAINIPSEC_CONNECTION_ESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.disconnect.plain") 34#define L2TPIPSECVPN_CONNECTION_NOTESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.connect.l2tpipsec") 35#define CISCOIPSECVPN_CONNECTION_NOTESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.connect.ciscoipsec") 36#define BTMMIPSEC_CONNECTION_NOTESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.connect.btmm") 37#define PLAINIPSEC_CONNECTION_NOTESTABLISHED_DOMAIN CONSTSTR("com.apple.Networking.ipsec.connect.plain") 38#define L2TPIPSECVPN_PHASE_DOMAIN CONSTSTR("com.apple.Networking.ipsec.phasestats.l2tpipsec") 39#define CISCOIPSECVPN_PHASE_DOMAIN CONSTSTR("com.apple.Networking.ipsec.phasestats.ciscoipsec") 40#define BTMMIPSEC_PHASE_DOMAIN CONSTSTR("com.apple.Networking.ipsec.phasestats.btmm") 41#define PLAINIPSEC_PHASE_DOMAIN CONSTSTR("com.apple.Networking.ipsec.phasestats.plain") 42#define PLAINIPSECDOMAIN CONSTSTR("com.apple.Networking.ipsec.main") 43 44#define IPSECASLDOMAIN CONSTSTR("com.apple.Networking.ipsec.asl") 45#define IPSECASLKEY CONSTSTR("IPSEC") 46 47#if TARGET_OS_EMBEDDED 48 49#define IPSECCONFIGTRACEREVENT(config, eventCode, message, failure_reason) 50 51#define IPSECPOLICYTRACEREVENT(policy, eventCode, message, failure_reason) 52 53#define IPSECSESSIONTRACERSTART(session) 54#define IPSECSESSIONTRACEREVENT(session, eventCode, message, failure_reason) 55#define IPSECSESSIONTRACERSTOP(session, is_failure, reason) 56#define IPSECSESSIONTRACERESTABLISHED(session) 57 58#else 59 60#define IPSECCONFIGTRACEREVENT(config, eventCode, message, failure_reason) ipsecConfigTracerEvent(config, eventCode, message, failure_reason) 61 62#define IPSECPOLICYTRACEREVENT(policy, eventCode, message, failure_reason) ipsecPolicyTracerEvent(policy, eventCode, message, failure_reason) 63 64#define IPSECSESSIONTRACERSTART(session) ipsecSessionTracerStart(session) 65#define IPSECSESSIONTRACEREVENT(session, eventCode, message, failure_reason) ipsecSessionTracerEvent(session, eventCode, message, failure_reason) 66#define IPSECSESSIONTRACERSTOP(session, is_failure, reason) ipsecSessionTracerStop(session, is_failure, reason) 67#define IPSECSESSIONTRACERESTABLISHED(session) ipsecSessionTracerLogEstablished(session) 68 69#endif 70 71#if 1 //TARGET_OS_EMBEDDED 72#define IPSECLOGASLMSG(format, args...) plog(ASL_LEVEL_NOTICE, format, ##args); 73#else 74#define IPSECLOGASLMSG(format, args...) do { \ 75 aslmsg m = asl_new(ASL_TYPE_MSG); \ 76 asl_set(m, ASL_KEY_FACILITY, IPSECASLDOMAIN); \ 77 asl_set(m, ASL_KEY_MSG, IPSECASLKEY); \ 78 asl_log(NULL, m, ASL_LEVEL_NOTICE, format, ##args); \ 79 asl_free(m); \ 80 } while(0) 81#endif 82 83static inline double get_percentage (double numerator, double denominator) 84{ 85 if (numerator >= denominator || denominator == 0) { 86 return((double)100); 87 } 88 return((numerator/denominator)*100); 89} 90 91#endif /* _IPSECMESSAGETRACER_H */ 92