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_common.h" 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #define LNN_DEFAULT_PKG_NAME "MODULE_LNN" 29 #define DEVICE_TYPE_SIZE_LEN 3 30 #define HB_SHORT_UDID_HASH_HEX_LEN 16 31 #define BROADCAST_INTERVAL_DEFAULT 50 32 #define MAX_TIME_LATENCY 30000 33 #define DEVICE_NAME_BUF_LEN 128 34 35 typedef enum { 36 EVENT_SCENE_LNN = 1, 37 EVENT_SCENE_JOIN_LNN = 2, 38 EVENT_SCENE_LEAVE_LNN = 3, 39 EVENT_SCENE_LANE = 4, 40 EVENT_SCENE_DDOS = 5, 41 } LnnEventScene; 42 43 typedef enum { 44 EVENT_STAGE_LNN_DISC_SDK = 1, 45 EVENT_STAGE_LNN_DISC_SERVICE = 2, 46 EVENT_STAGE_LNN_JOIN_SDK = 3, 47 EVENT_STAGE_LNN_LEAVE_SDK = 4, 48 EVENT_STAGE_LNN_REG_NODE = 5, 49 EVENT_STAGE_LNN_SHIFT_GEAR = 6, 50 EVENT_STAGE_LNN_LANE_SELECT_START = 7, 51 EVENT_STAGE_LNN_LANE_SELECT_END = 8, 52 EVENT_STAGE_LNN_CTRL_BLE = 9, 53 EVENT_STAGE_LNN_DATA_LEVEL = 10, 54 EVENT_STAGE_LNN_BLE_TRIGGER = 11, 55 EVENT_STAGE_LNN_WIFI_TRIGGER = 12, 56 EVENT_STAGE_LNN_SCREEN_STATE_CHANGED = 13, 57 EVENT_STAGE_LNN_USER_SWITCHED = 14, 58 EVENT_STAGE_LNN_UPDATE_ACCOUNT = 15, 59 } LnnEventLnnStage; 60 61 typedef enum { 62 EVENT_STAGE_JOIN_LNN_START = 1, 63 EVENT_STAGE_AUTH = 2, 64 EVENT_STAGE_AUTH_CONNECTION = 3, 65 EVENT_STAGE_AUTH_DEVICE_ID_POST = 4, 66 EVENT_STAGE_AUTH_DEVICE_ID_PROCESS = 5, 67 EVENT_STAGE_AUTH_HICHAIN_START = 6, 68 EVENT_STAGE_AUTH_HICHAIN_END = 7, 69 EVENT_STAGE_AUTH_EXCHANGE_CIPHER = 8, 70 EVENT_STAGE_AUTH_DEVICE_INFO_POST = 9, 71 EVENT_STAGE_AUTH_DEVICE_INFO_PROCESS = 10, 72 EVENT_STAGE_JOIN_LNN_END = 11, 73 EVENT_STAGE_JOIN_LNN_RECEIVE_BROADCAST = 12, 74 EVENT_STAGE_JOIN_LNN_DEVICE_FOUND = 13, 75 } LnnEventJoinLnnStage; 76 77 typedef enum { 78 EVENT_STAGE_LEAVE_LNN = 1, 79 } LnnEventLeaveLnnStage; 80 81 typedef enum { 82 EVENT_STAGE_LANE_CONFLICT = 1, 83 EVENT_STAGE_LANE_DECIDE_FAIL, 84 EVENT_STAGE_LANE_BUILD_SUCC, 85 EVENT_STAGE_LANE_BUILD_FAIL, 86 EVENT_STAGE_LANE_FREE_SUCC, 87 EVENT_STAGE_LANE_FREE_FAIL, 88 } LnnEventLaneStage; 89 90 typedef enum { 91 EVENT_STAGE_DDOS_THRESHOLD = 1, 92 } LnnEventDdosStage; 93 94 typedef enum { 95 DB_TRIGGER = 0, 96 DM_TRIGGER = 1, 97 UPDATE_ACCOUNT = 2, 98 SCREEN_ON = 3, 99 SCREEN_OFF = 4, 100 BLE_TURN_ON = 5, 101 BLE_TURN_OFF = 6, 102 BLE_MULTISCREEN_COLLABORATION = 7, 103 BLE_LANE_VAP_CHANGED = 8, 104 USER_SWITCHED = 9, 105 MSDP_MOVEMENT_AND_STATIONARY = 10, 106 TRIGGER_CLOUD_SYNC_HEARTBEAT = 11, 107 WIFI_STATE_CHANGED = 12, 108 WIFI_USER_FOREGROUND = 13, 109 WIFI_NET_LOCK_STATE_CHANGED = 14, 110 WIFI_FACK_OOBE = 15, 111 WIFI_NIGHT_MODE_CHANGED = 16, 112 WIFI_NET_ACCOUNT_STATE_CHANGED = 17, 113 WIFI_IP_ADDR_CHANGED = 18, 114 WIFI_GROUP_CREATED = 19, 115 WIFI_DEVICE_BOUND = 20, 116 OTHER, 117 }LnnTriggerReason; 118 119 typedef struct { 120 uint64_t triggerTime; // TRIGGER_LNN_TIME 121 int32_t deviceCnt; // DEVICE_CNT 122 int32_t triggerReason; // TRIGGER_REASON 123 }LnnTriggerInfo; 124 125 typedef enum { 126 DISC_SERVER_PUBLISH = 1, 127 DISC_SERVER_STOP_PUBLISH = 2, 128 DISC_SERVER_DISCOVERY = 3, 129 DISC_SERVER_STOP_DISCOVERY = 4, 130 } LnnDiscServerType; 131 132 typedef enum { 133 LNN_TYPE_BLE_BROADCAST_ONLINE = 1, // ble online by broadcast 134 LNN_TYPE_BLE_CONNECT_ONLINE = 2, // ble online by connection 135 LNN_TYPE_WIFI_CONNECT_ONLINE = 101, // wifi online by connection 136 LNN_TYPE_BR_CONNECT_ONLINE = 201, // br online by connection 137 LNN_TYPE_OTHER_CONNECT_ONLINE = 301, // device online by other type connection 138 } LnnType; 139 140 typedef enum { 141 CONNECT_INITIAL_VALUE = 0, 142 BLE_FIRST_CONNECT = 1, 143 LOCAL_STATE_VERSION_CHANGED = 2, 144 PEER_STATE_VERSION_CHANGED = 4, 145 DEVICEKEY_NOT_EXISTED = 8, 146 UPDATE_REMOTE_DEVICE_INFO_FAILED = 16, 147 FIND_REMOTE_CIPHERKEY_FAILED = 32, 148 } ConnectOnlineReason; 149 150 typedef struct { 151 int32_t result; // STAGE_RES 152 int32_t errcode; // ERROR_CODE 153 int32_t authId; // AUTH_ID 154 int32_t discServerType; // DISC_SERVER_TYPE 155 int32_t gearCycle; // GEAR_CYCLE 156 int32_t gearDuration; // GEAR_DURATION 157 int32_t connectionId; // CONN_ID 158 int32_t authLinkType; // AUTH_LINK_TYPE 159 int32_t authRequestId; // AUTH_REQUEST_ID 160 int32_t authCostTime; // AUTH_COST_TIME 161 int32_t lnnType; // LNN_TYPE 162 int32_t onlineNum; // ONLINE_NUM 163 int32_t peerDeviceAbility; // PEER_DEV_ABILITY 164 uint32_t onlineType; // ONLINE_TYPE 165 int32_t osType; // OS_TYPE 166 uint32_t connOnlineReason; // CONN_ONLINE_REASON 167 uint64_t laneId; // LANE_ID 168 int32_t chanReqId; // CHAN_REQ_ID 169 int32_t connReqId; // CONN_REQ_ID 170 int32_t strategy; // STRATEGY_FOR_LNN_BLE 171 uint64_t timeLatency; // TIME_LATENCY 172 int32_t triggerReason; // TRIGGER_REASON 173 int64_t authSeq; // AUTH_SEQ 174 int32_t onlineDevCnt; // ONLINE_DEV_CNT_FOR_LNN_TIME_LATENCY 175 int32_t interval; // BROADCAST_INTERVAL 176 int32_t laneLinkType; // LANE_LINK_TYPE 177 int32_t hmlChannelId; // HML_CHANNEL_ID 178 int32_t p2pChannelId; // P2P_CHANNEL_ID 179 int32_t staChannelId; // STA_CHANNEL_ID 180 int32_t apChannelId; // AP_CHANNEL_ID 181 uint32_t laneReqId; // LANE_REQ_ID 182 uint32_t minBW; // MIN_BW 183 uint32_t maxLaneLatency; // MAX_LANE_LATENCY 184 uint32_t minLaneLatency; // MIN_LANE_LATENCY 185 int32_t isWifiDirectReuse; // IS_WIFI_DIRECT_REUSE 186 int32_t bandWidth; // BAND_WIDTH 187 int32_t guideType; // GUIDE_TYPE 188 int32_t funcId; // FUNC_ID 189 int32_t recordCnt; // RECORD_CNT 190 int32_t idCount; // ID_COUNT 191 int32_t userCount; // UESR_COUNT 192 int32_t totalCount; // TOTAL_COUNT 193 uint32_t laneStage; // LANE_STAGE 194 uint32_t laneHandle; // LANE_HANDLE 195 uint32_t rttLevel; // RTT_LEVEL 196 uint32_t transType; // TRANS_TYPE 197 uint32_t localDynamicCap; // LOCAL_DYNAMIC_CAP 198 uint32_t remoteDynamicCap; // REMOTE_DYNAMIC_CAP 199 uint32_t isGuideRetry; // IS_GUIDE_RETRY 200 uint32_t wifiDetectState; // WIFI_DETECT_STATE 201 uint64_t wifiDetectTime; // WIFI_DETECT_TIME 202 uint64_t buildLinkTime; // BUILD_LINK_TIME 203 uint32_t isHmlReuse; // IS_HML_REUSE 204 uint32_t isDelayFree; // IS_DELAY_FREE 205 uint64_t freeLinkTime; // FREE_LINK_TIME 206 const char *peerDeviceInfo; // PEER_DEV_INFO 207 const char *peerIp; // PEER_IP 208 const char *peerBrMac; // PEER_BR_MAC 209 const char *peerBleMac; // PEER_BLE_MAC 210 const char *peerWifiMac; // PEER_WIFI_MAC 211 const char *peerPort; // PEER_PORT 212 const char *peerUdid; // PEER_UDID 213 const char *peerNetworkId; // PEER_NET_ID 214 const char *localDeviceType; // LOCAL_DEV_TYPE 215 const char *peerDeviceType; // PEER_DEV_TYPE 216 const char *localUdidHash; // LOCAL_UDID_HASH 217 const char *peerUdidHash; // PEER_UDID_HASH 218 const char *callerPkg; // HOST_PKG 219 const char *calleePkg; // TO_CALL_PKG 220 } LnnEventExtra; 221 222 typedef struct { 223 int32_t result; // STAGE_RES 224 int32_t errcode; // ERROR_CODE 225 int32_t lnnType; // LNN_TYPE 226 int32_t onlineNum; // ONLINE_NUM 227 int32_t onlineType; // ONLINE_TYPE 228 int32_t osType; // OS_TYPE 229 uint32_t connOnlineReason; // CONN_ONLINE_REASON 230 char peerBleMac[BT_MAC_LEN]; // PEER_BLE_MAC 231 char peerUdid[UDID_BUF_LEN]; // PEER_UDID 232 char peerNetworkId[NETWORK_ID_BUF_LEN]; // PEER_NET_ID 233 char localDeviceType[DEVICE_TYPE_SIZE_LEN + 1]; // LOCAL_DEV_TYPE 234 char peerDeviceType[DEVICE_TYPE_SIZE_LEN + 1]; // PEER_DEV_TYPE 235 char localUdidHash[HB_SHORT_UDID_HASH_HEX_LEN + 1]; // LOCAL_UDID_HASH 236 char peerUdidHash[HB_SHORT_UDID_HASH_HEX_LEN + 1]; // PEER_UDID_HASH 237 } LnnReportEventExtra; 238 239 typedef struct { 240 DeviceType type; 241 int32_t osType; 242 ConnectOnlineReason bleConnectReason; 243 } LnnDfxDeviceInfoReport; 244 245 typedef enum { 246 BLE_REPORT_EVENT_INIT = 1, 247 BLE_REPORT_EVENT_FAIL = 2, 248 BLE_REPORT_EVENT_SUCCESS = 3, 249 } ReportStatus; 250 251 typedef struct { 252 LnnReportEventExtra extra; 253 ReportStatus status; 254 } LnnBleReportExtra; 255 256 typedef enum { 257 ALARM_SCENE_LNN_RESERVED = 1, 258 } LnnAlarmScene; 259 260 typedef struct { 261 int32_t errcode; 262 int32_t result; 263 } LnnAlarmExtra; 264 265 typedef enum { 266 STATS_SCENE_LNN_RESERVED = 1, 267 } LnnStatsScene; 268 269 typedef struct { 270 int32_t reserved; 271 } LnnStatsExtra; 272 273 typedef enum { 274 AUDIT_SCENE_DECRYPT_CONN_DATA = 1, 275 AUDIT_SCENE_DECRYPT_DEV_INFO_MSG = 2, 276 AUDIT_SCENE_HANDLE_MSG_DEV_ID = 3, 277 AUDIT_SCENE_HANDLE_MSG_DEV_INFO = 4, 278 AUDIT_SCENE_HANDLE_MSG_AUTH_DATA = 5, 279 AUDIT_SCENE_HEARTBEAT_FREQ = 6, 280 AUDIT_SCENE_HEARTBEAT_MSG = 7, 281 } LnnAuditScene; 282 283 typedef enum { 284 AUDIT_DECRYPT_FAIL_END_AUTH = 1, 285 AUDIT_HANDLE_MSG_FAIL_END_AUTH = 2, 286 } LnnAuditProcessResult; 287 288 typedef struct { 289 int32_t result; // RESULT 290 int32_t errCode; // ERROR_CODE 291 SoftbusAuditType auditType; // AUDIT_TYPE 292 uint64_t connId; // CONN_ID 293 int32_t authLinkType; // AUTH_LINK_TYPE 294 uint32_t authRequestId; // AUTH_REQUEST_ID 295 int32_t onlineNum; // ONLINE_NUM 296 const char hostPkg[DISC_MAX_DEVICE_NAME_LEN]; // HOST_PKG 297 const char localIp[IP_STR_MAX_LEN]; // LOCAL_IP 298 const char localBrMac[BT_MAC_LEN]; // LOCAL_BR_MAC 299 const char localBleMac[BT_MAC_LEN]; // LOCAL_BLE_MAC 300 const char localUdid[UDID_BUF_LEN]; // LOCAL_UDID 301 const char localNetworkId[NETWORK_ID_BUF_LEN]; // LOCAL_NETWORK_ID 302 const char localDevName[DEVICE_NAME_BUF_LEN]; // LOCAL_DEV_NAME 303 const char peerIp[IP_STR_MAX_LEN]; // PEER_IP 304 const char peerBrMac[BT_MAC_LEN]; // PEER_BR_MAC 305 const char peerBleMac[BT_MAC_LEN]; // PEER_BLE_MAC 306 const char peerSleMac[BT_MAC_LEN]; // PEER_SLE_MAC 307 const char peerUdid[UDID_BUF_LEN]; // PEER_UDID 308 const char peerNetworkId[NETWORK_ID_BUF_LEN]; // PEER_NETWORK_ID 309 const char peerDevName[DEVICE_NAME_BUF_LEN]; // PEER_DEV_NAME 310 int32_t localAuthPort; // LOCAL_AUTH_PORT 311 int32_t localProxyPort; // LOCAL_PROXY_PORT 312 int32_t localSessionPort; // LOCAL_SESSION_PORT 313 int32_t localDevType; // LOCAL_DEV_TYPE 314 int32_t peerAuthPort; // PEER_AUTH_PORT 315 int32_t peerProxyPort; // PEER_PROXY_PORT 316 int32_t peerSessionPort; // PEER_SESSION_PORT 317 int32_t peerDevType; // PEER_DEV_TYPE 318 int32_t attackTimes; // ATTACK_TIMES 319 int32_t beAttackedPort; // BE_ATTACKED_PORT 320 int32_t hbEventType; // HEARTBEAT_EVENT_TYPE 321 } LnnAuditExtra; 322 323 #ifdef __cplusplus 324 } 325 #endif /* __cplusplus */ 326 #endif // LNN_EVENT_FORM_H 327