1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef LNN_EVENT_FORM_H
17 #define LNN_EVENT_FORM_H
18 
19 #include <stdint.h>
20 
21 #include "event_form_enum.h"
22 #include "softbus_bus_center.h"
23 #include "softbus_common.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #define LNN_DEFAULT_PKG_NAME "MODULE_LNN"
30 #define DEVICE_TYPE_SIZE_LEN 3
31 #define HB_SHORT_UDID_HASH_HEX_LEN 16
32 
33 typedef enum {
34     EVENT_SCENE_LNN = 1,
35     EVENT_SCENE_JOIN_LNN = 2,
36     EVENT_SCENE_LEAVE_LNN = 3,
37     EVENT_SCENE_LANE = 4,
38 } LnnEventScene;
39 
40 typedef enum {
41     EVENT_STAGE_LNN_DISC_SDK = 1,
42     EVENT_STAGE_LNN_DISC_SERVICE = 2,
43     EVENT_STAGE_LNN_JOIN_SDK = 3,
44     EVENT_STAGE_LNN_LEAVE_SDK = 4,
45     EVENT_STAGE_LNN_REG_NODE = 5,
46     EVENT_STAGE_LNN_SHIFT_GEAR = 6,
47     EVENT_STAGE_LNN_LANE_SELECT_START = 7,
48     EVENT_STAGE_LNN_LANE_SELECT_END = 8,
49     EVENT_STAGE_LNN_CTRL_BLE = 9,
50 } LnnEventLnnStage;
51 
52 typedef enum {
53     EVENT_STAGE_JOIN_LNN_START = 1,
54     EVENT_STAGE_AUTH = 2,
55     EVENT_STAGE_AUTH_CONNECTION = 3,
56     EVENT_STAGE_AUTH_DEVICE_ID_POST = 4,
57     EVENT_STAGE_AUTH_DEVICE_ID_PROCESS = 5,
58     EVENT_STAGE_AUTH_HICHAIN_START = 6,
59     EVENT_STAGE_AUTH_HICHAIN_END = 7,
60     EVENT_STAGE_AUTH_EXCHANGE_CIPHER = 8,
61     EVENT_STAGE_AUTH_DEVICE_INFO_POST = 9,
62     EVENT_STAGE_AUTH_DEVICE_INFO_PROCESS = 10,
63     EVENT_STAGE_JOIN_LNN_END = 11,
64 } LnnEventJoinLnnStage;
65 
66 typedef enum {
67     EVENT_STAGE_LEAVE_LNN = 1,
68 } LnnEventLeaveLnnStage;
69 
70 typedef enum {
71     EVENT_STAGE_LANE_CONFLICT = 1,
72 } LnnEventLaneStage;
73 
74 typedef enum {
75     DISC_SERVER_PUBLISH = 1,
76     DISC_SERVER_STOP_PUBLISH = 2,
77     DISC_SERVER_DISCOVERY = 3,
78     DISC_SERVER_STOP_DISCOVERY = 4,
79 } LnnDiscServerType;
80 
81 typedef enum {
82     LNN_TYPE_BLE_BROADCAST_ONLINE = 1,   // ble online by broadcast
83     LNN_TYPE_BLE_CONNECT_ONLINE = 2,   // ble online by connection
84     LNN_TYPE_WIFI_CONNECT_ONLINE = 101,  // wifi online by connection
85     LNN_TYPE_BR_CONNECT_ONLINE = 201,    // br online by connection
86     LNN_TYPE_OTHER_CONNECT_ONLINE = 301, // device online by other type connection
87 } LnnType;
88 
89 typedef enum {
90     CONNECT_INITIAL_VALUE = 0,
91     BLE_FIRST_CONNECT = 1,
92     LOCAL_STATE_VERSION_CHANGED = 2,
93     PEER_STATE_VERSION_CHANGED = 4,
94     DEVICEKEY_NOT_EXISTED = 8,
95     UPDATE_REMOTE_DEVICE_INFO_FAILED = 16,
96     FIND_REMOTE_CIPHERKEY_FAILED = 32,
97 } ConnectOnlineReason;
98 
99 typedef struct {
100     int32_t result;             // STAGE_RES
101     int32_t errcode;            // ERROR_CODE
102     int32_t authId;             // AUTH_ID
103     int32_t discServerType;     // DISC_SERVER_TYPE
104     int32_t gearCycle;          // GEAR_CYCLE
105     int32_t gearDuration;       // GEAR_DURATION
106     int32_t connectionId;       // CONN_ID
107     int32_t authLinkType;       // AUTH_LINK_TYPE
108     int32_t authRequestId;      // AUTH_REQUEST_ID
109     int32_t authCostTime;       // AUTH_COST_TIME
110     int32_t lnnType;            // LNN_TYPE
111     int32_t onlineNum;          // ONLINE_NUM
112     int32_t peerDeviceAbility;  // PEER_DEV_ABILITY
113     int32_t onlineType;         // ONLINE_TYPE
114     int32_t osType;             // OS_TYPE
115     uint32_t connOnlineReason;  // CONN_ONLINE_REASON
116     int32_t laneId;             // LANE_ID
117     int32_t chanReqId;          // CHAN_REQ_ID
118     int32_t connReqId;          // CONN_REQ_ID
119     int32_t strategy;           // STRATEGY_FOR_LNN_BLE
120     int32_t laneLinkType;       // LANE_LINK_TYPE
121     int32_t hmlChannelId;       // HML_CHANNEL_ID
122     int32_t p2pChannelId;       // P2P_CHANNEL_ID
123     int32_t staChannelId;       // STA_CHANNEL_ID
124     int32_t apChannelId;        // AP_CHANNEL_ID
125     const char *peerDeviceInfo; // PEER_DEV_INFO
126     const char *peerIp;         // PEER_IP
127     const char *peerBrMac;      // PEER_BR_MAC
128     const char *peerBleMac;     // PEER_BLE_MAC
129     const char *peerWifiMac;    // PEER_WIFI_MAC
130     const char *peerPort;       // PEER_PORT
131     const char *peerUdid;       // PEER_UDID
132     const char *peerNetworkId;  // PEER_NET_ID
133     const char *localDeviceType; // LOCAL_DEV_TYPE
134     const char *peerDeviceType; // PEER_DEV_TYPE
135     const char *localUdidHash;  // LOCAL_UDID_HASH
136     const char *peerUdidHash;   // PEER_UDID_HASH
137     const char *callerPkg;      // HOST_PKG
138     const char *calleePkg;      // TO_CALL_PKG
139 } LnnEventExtra;
140 
141 typedef struct {
142     int32_t result;                                           // STAGE_RES
143     int32_t errcode;                                          // ERROR_CODE
144     int32_t lnnType;                                          // LNN_TYPE
145     int32_t onlineNum;                                        // ONLINE_NUM
146     int32_t onlineType;                                       // ONLINE_TYPE
147     int32_t osType;                                           // OS_TYPE
148     uint32_t connOnlineReason;                                // CONN_ONLINE_REASON
149     char peerBleMac[BT_MAC_LEN];                              // PEER_BLE_MAC
150     char peerUdid[UDID_BUF_LEN];                              // PEER_UDID
151     char peerNetworkId[NETWORK_ID_BUF_LEN];                   // PEER_NET_ID
152     char localDeviceType[DEVICE_TYPE_SIZE_LEN + 1];           // LOCAL_DEV_TYPE
153     char peerDeviceType[DEVICE_TYPE_SIZE_LEN + 1];            // PEER_DEV_TYPE
154     char localUdidHash[HB_SHORT_UDID_HASH_HEX_LEN + 1];       // LOCAL_UDID_HASH
155     char peerUdidHash[HB_SHORT_UDID_HASH_HEX_LEN + 1];        // PEER_UDID_HASH
156 } LnnReportEventExtra;
157 
158 typedef struct {
159     DeviceType type;
160     int32_t osType;
161     ConnectOnlineReason bleConnectReason;
162 } LnnDfxDeviceInfoReport;
163 
164 typedef enum {
165     BLE_REPORT_EVENT_INIT = 1,
166     BLE_REPORT_EVENT_FAIL = 2,
167     BLE_REPORT_EVENT_SUCCESS = 3,
168 } ReportStatus;
169 
170 typedef struct {
171     LnnReportEventExtra extra;
172     ReportStatus status;
173 } LnnBleReportExtra;
174 
175 typedef enum {
176     ALARM_SCENE_LNN_RESERVED = 1,
177 } LnnAlarmScene;
178 
179 typedef struct {
180     int32_t errcode;
181     int32_t result;
182 } LnnAlarmExtra;
183 
184 typedef enum {
185     STATS_SCENE_LNN_RESERVED = 1,
186 } LnnStatsScene;
187 
188 typedef struct {
189     int32_t reserved;
190 } LnnStatsExtra;
191 
192 typedef enum {
193     AUDIT_SCENE_DECRYPT_CONN_DATA = 1,
194     AUDIT_SCENE_DECRYPT_DEV_INFO_MSG = 2,
195     AUDIT_SCENE_HANDLE_MSG_DEV_ID = 3,
196     AUDIT_SCENE_HANDLE_MSG_DEV_INFO = 4,
197     AUDIT_SCENE_HANDLE_MSG_AUTH_DATA = 5,
198     AUDIT_SCENE_HEARTBEAT_FREQ = 6,
199     AUDIT_SCENE_HEARTBEAT_MSG = 7,
200 } LnnAuditScene;
201 
202 typedef enum {
203     AUDIT_DECRYPT_FAIL_END_AUTH = 1,
204     AUDIT_HANDLE_MSG_FAIL_END_AUTH = 2,
205 } LnnAuditProcessResult;
206 
207 typedef struct {
208     int32_t result;               // RESULT
209     int32_t errCode;              // ERROR_CODE
210     SoftbusAuditType auditType;   // AUDIT_TYPE
211     uint64_t connId;              // CONN_ID
212     int32_t authLinkType;         // AUTH_LINK_TYPE
213     uint32_t authRequestId;       // AUTH_REQUEST_ID
214     int32_t onlineNum;            // ONLINE_NUM
215     const char hostPkg[DISC_MAX_DEVICE_NAME_LEN];  // HOST_PKG
216     const char localIp[IP_STR_MAX_LEN];            // LOCAL_IP
217     const char localBrMac[BT_MAC_LEN];             // LOCAL_BR_MAC
218     const char localBleMac[BT_MAC_LEN];            // LOCAL_BLE_MAC
219     const char localUdid[UDID_BUF_LEN];            // LOCAL_UDID
220     const char localNetworkId[NETWORK_ID_BUF_LEN]; // LOCAL_NETWORK_ID
221     const char localDevName[DEVICE_NAME_BUF_LEN];  // LOCAL_DEV_NAME
222     const char peerIp[IP_STR_MAX_LEN];             // PEER_IP
223     const char peerBrMac[BT_MAC_LEN];              // PEER_BR_MAC
224     const char peerBleMac[BT_MAC_LEN];             // PEER_BLE_MAC
225     const char peerUdid[UDID_BUF_LEN];             // PEER_UDID
226     const char peerNetworkId[NETWORK_ID_BUF_LEN];  // PEER_NETWORK_ID
227     const char peerDevName[DEVICE_NAME_BUF_LEN];   // PEER_DEV_NAME
228     int32_t localAuthPort;       // LOCAL_AUTH_PORT
229     int32_t localProxyPort;      // LOCAL_PROXY_PORT
230     int32_t localSessionPort;    // LOCAL_SESSION_PORT
231     int32_t localDevType;        // LOCAL_DEV_TYPE
232     int32_t peerAuthPort;        // PEER_AUTH_PORT
233     int32_t peerProxyPort;       // PEER_PROXY_PORT
234     int32_t peerSessionPort;     // PEER_SESSION_PORT
235     int32_t peerDevType;         // PEER_DEV_TYPE
236     int32_t attackTimes;         // ATTACK_TIMES
237     int32_t beAttackedPort;      // BE_ATTACKED_PORT
238     int32_t hbEventType;         // HEARTBEAT_EVENT_TYPE
239 } LnnAuditExtra;
240 
241 #ifdef __cplusplus
242 }
243 #endif /* __cplusplus */
244 #endif // LNN_EVENT_FORM_H
245