Files
kunlun/plc/cvg/common/inc/cvg_app_sg.h

143 lines
4.5 KiB
C
Raw Normal View History

2024-09-28 14:24:04 +08:00
/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef CVG_APP_SG_H
#define CVG_APP_SG_H
/* os shim includes */
#include "os_types.h"
/* cvg layer includes */
#include "iot_plc_msg_api.h"
#ifdef __cplusplus
extern "C" {
#endif
#if SUPPORT_SMART_GRID
/**
* @brief handle send msdu reqest from app layer this method support both
* CCO & STA/PCO role.
*
* @param pkt: the pkt which app wants to send
* @param req: meta info about the request
*
* @return
* 1 - packet send out
* 0 - packet dropped
*/
uint8_t cvg_app_handle_send_msdu_req_sg(iot_pkt_t *pkt,
iot_plc_msdu_send_t* req);
/**
* @brief cvg_app_handle_conn_less_send_msdu_req_sg() - handle send conn less
* data reqest from app layer this method support both CCO & STA/PCO role.
* @param pkt: the pkt which app wants to send
* @param req: meta info about the request
* @retval 1: packet send out
* @retval 0: packet dropped
*/
uint8_t cvg_app_handle_conn_less_send_msdu_req_sg(iot_pkt_t *pkt,
iot_plc_msdu_send_t *req);
/**
* @brief cvg_app_report_msdu_to_app_sg() - report msdu to app layer
* @param buf: buf containing msdu packet
* @param mac: mac header of the msdu
* @param app_id: application id of the msdu
*/
void cvg_app_report_msdu_to_app_sg(iot_pkt_t *buf, mac_header_t *mac,
uint8_t app_id);
/**
* @brief cvg_app_handle_ctrl_proto_send_req_sg() - handling the MSDU sending
* of the controller protocol for sg.
* @param pkt: the pkt which app wants to send
* @param req: meta info about the request
* @retval: 1 - packet send out, 0 - packet dropped
*/
uint8_t cvg_app_handle_ctrl_proto_send_req_sg(iot_pkt_t *pkt,
iot_plc_msdu_send_t *req);
/**
* @brief cvg_app_report_msdu_capture_to_app_sg() - report captured msdu to
* app layer
* @param mac: mac header of the msdu
* @param data: app data of the msdu
* @param len: app data len of the msdu
* @param app_id: application id of the msdu
*/
void cvg_app_report_msdu_capture_to_app_sg(mac_header_t *mac, uint8_t *data,
uint32_t len, uint8_t app_id);
/**
* @brief cvg_app_report_app_sniffer_data_sg() - report the sniffed app
* message to the app layer.
* @param buf: buf containing msdu packet.
* @param mac: mac header of the msdu
* @param nid: the network id of the message.
* @param nw_addr: the network addr of the message.
*/
void cvg_app_report_app_sniffer_data_sg(iot_pkt_t *buf, mac_header_t *mac,
uint32_t nid, uint8_t *nw_addr);
#if HPLC_RF_DEV_SUPPORT
/* @brief report single hop msdu to app layer
* @param buf: buf containing msdu packet
* @param s_mac: mac header of the msdu
* @param app_id application id of this msdu
* @param stei: source tei come from fc
* @param dtei: destination tei come from fc
* @param is_bcast: flag to mark if this packet is broadcast packet
*/
void cvg_app_report_single_hop_msdu_to_app_sg(iot_pkt_t *buf,
mac_short_header_t *s_mac, uint8_t app_id, tei_t stei,
tei_t dtei, uint8_t is_bcast);
#else /* HPLC_RF_DEV_SUPPORT */
#define cvg_app_report_single_hop_msdu_to_app_sg(buf, s_mac, app_id, stei, \
dtei, is_bcast)
#endif /* HPLC_RF_DEV_SUPPORT */
#else
#define cvg_app_handle_send_msdu_req_sg(pkt, req) (0)
#define cvg_app_report_msdu_to_app_sg(buf, mac, app_id)
#define cvg_app_handle_conn_less_send_msdu_req_sg(pkt, req) (0)
#define cvg_app_handle_ctrl_proto_send_req_sg(pkt, req) (0)
#define cvg_app_report_msdu_capture_to_app_sg(mac, data, len, app_id)
#define cvg_app_report_app_sniffer_data_sg(buf, mac, nid, nw_addr)
#define cvg_app_report_single_hop_msdu_to_app_sg(buf, s_mac, app_id, stei, \
dtei, is_bcast)
#endif
#ifdef __cplusplus
}
#endif
#endif /* CVG_APP_SG_H */