1/*******************************************************************************
2 * Copyright (C) 2004-2008 Intel Corp. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 *  - Redistributions of source code must retain the above copyright notice,
8 *    this list of conditions and the following disclaimer.
9 *
10 *  - Redistributions in binary form must reproduce the above copyright notice,
11 *    this list of conditions and the following disclaimer in the documentation
12 *    and/or other materials provided with the distribution.
13 *
14 *  - Neither the name of Intel Corp. nor the names of its
15 *    contributors may be used to endorse or promote products derived from this
16 *    software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS
22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 * POSSIBILITY OF SUCH DAMAGE.
29 *******************************************************************************/
30
31#ifndef _LMS_IF_CONSTANTS_H_
32#define _LMS_IF_CONSTANTS_H_
33
34#define LMS_PROCOL_VERSION 4
35#define LMS_PROCOL_VERSION_COMPAT 2
36
37//
38// messages opcodes
39//
40typedef enum {
41	APF_DISCONNECT		= 1,
42	APF_SERVICE_REQUEST	= 5,
43	APF_SERVICE_ACCEPT	= 6,
44	APF_USERAUTH_REQUEST	= 50,
45	APF_USERAUTH_FAILURE	= 51,
46	APF_USERAUTH_SUCCESS	= 52,
47	APF_GLOBAL_REQUEST	= 80,
48	APF_REQUEST_SUCCESS	= 81,
49	APF_REQUEST_FAILURE	= 82,
50	APF_CHANNEL_OPEN		= 90,
51	APF_CHANNEL_OPEN_CONFIRMATION	= 91,
52	APF_CHANNEL_OPEN_FAILURE	= 92,
53	APF_CHANNEL_WINDOW_ADJUST	= 93,
54	APF_CHANNEL_DATA		= 94,
55	APF_CHANNEL_CLOSE		= 97,
56	APF_PROTOCOLVERSION	= 192
57} APF_MESSAGE_TYPE;
58
59typedef enum {
60	APF_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT             = 1,
61	APF_DISCONNECT_PROTOCOL_ERROR                          = 2,
62	APF_DISCONNECT_KEY_EXCHANGE_FAILED                     = 3,
63	APF_DISCONNECT_RESERVED                                = 4,
64	APF_DISCONNECT_MAC_ERROR                               = 5,
65	APF_DISCONNECT_COMPRESSION_ERROR                       = 6,
66	APF_DISCONNECT_SERVICE_NOT_AVAILABLE                   = 7,
67	APF_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED          = 8,
68	APF_DISCONNECT_HOST_KEY_NOT_VERIFIABLE                 = 9,
69	APF_DISCONNECT_CONNECTION_LOST                        = 10,
70	APF_DISCONNECT_BY_APPLICATION                         = 11,
71	APF_DISCONNECT_TOO_MANY_CONNECTIONS                   = 12,
72	APF_DISCONNECT_AUTH_CANCELLED_BY_USER                 = 13,
73	APF_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE         = 14,
74	APF_DISCONNECT_ILLEGAL_USER_NAME                      = 15
75} APF_DISCONNECT_REASON_CODE;
76
77//
78//strings used in global messages
79//
80#define APF_GLOBAL_REQUEST_STR_TCP_FORWARD_REQUEST "tcpip-forward"
81#define APF_GLOBAL_REQUEST_STR_TCP_FORWARD_CANCEL_REQUEST "cancel-tcpip-forward"
82#define APF_GLOBAL_REQUEST_STR_UDP_SEND_TO "udp-send-to@amt.intel.com"
83#define APF_OPEN_CHANNEL_REQUEST_FORWARDED "forwarded-tcpip"
84#define APF_OPEN_CHANNEL_REQUEST_DIRECT "direct-tcpip"
85
86// APF service names
87#define APF_SERVICE_PFWD "pfwd@amt.intel.com"
88#define APF_SERVICE_AUTH "auth@amt.intel.com"
89
90// APF Authentication method
91#define APF_AUTH_NONE "none"
92#define APF_AUTH_PASSWORD "password"
93
94//calculate string length without the NULL terminator
95#define APF_STR_SIZE_OF(s) (sizeof(s)-1)
96
97// Trigger reason code
98typedef enum {
99	USER_INITIATED_REQUEST		= 1,
100	ALERT_REQUEST			= 2,
101	HIT_PROVISIONING_REQUEST	= 3,
102	PERIODIC_REQUEST		= 4,
103	LME_REQUEST			= 254
104} APF_TRIGGER_REASON;
105
106typedef enum {
107	OPEN_FAILURE_REASON_ADMINISTRATIVELY_PROHIBITED = 1,
108	OPEN_FAILURE_REASON_CONNECT_FAILED = 2,
109	OPEN_FAILURE_REASON_UNKNOWN_CHANNEL_TYPE = 3,
110	OPEN_FAILURE_REASON_RESOURCE_SHORTAGE = 4
111} OPEN_FAILURE_REASON;
112
113#endif
114
115