/*=========================================================================== Combined Charging System (CCS): SECC EVComm.h initiated by Vern, Joseph (since 2019/07/19) =============================================================================*/ #ifndef EVCOMM_H_ #define EVCOMM_H_ #define QcaInterface "eth0" #define SupportBcbToggle #define SdpUdpServerPort 15118 #define SdpTcpServerPort 59438 //49152-65535 #define IPV6_LINK_LOCAL_PREFIX 0xFE80 /***********************************************/ /*********** Ethernet Type ********************/ /**********************************************/ #define EtherType_HomePlug 0x88E1 /***********************************************/ /*** MMTYPE (Management Message Type) **/ /**********************************************/ #define MMTYPE_CM_SET_KEY_REQ 0x6008 #define MMTYPE_CM_SET_KEY_CNF 0x6009 #define MMTYPE_CM_SLAC_PARM_REQ 0x6064 #define MMTYPE_CM_SLAC_PARM_CNF 0x6065 #define MMTYPE_CM_START_ATTEN_CHAR_IND 0x606A #define MMTYPE_CM_MNBC_SOUND_IND 0x6076 #define MMTYPE_CM_ATTN_CHAR_IND 0x606E #define MMTYPE_CM_ATTN_CHAR_RSP 0x606F #define MMTYPE_CM_VALIDATE_REQ 0x6078 #define MMTYPE_CM_VALIDATE_CNF 0x6079 #define MMTYPE_CM_SLAC_MATCH_REQ 0x607C #define MMTYPE_CM_SLAC_MATCH_CNF 0x607D #define MMTYPE_CM_ATTEN_PROFILE_IND 0x6086 //following are the vendor specific type #define MMTYPE_VENDOR_VS_HOST_ACTION 0xA062 //Embedded Host Action Requested Indication MME #define MMTYPE_VENDOR_ATTEN_CHAR 0xA14E //Attenuation Characteristics MME (VS_ATTEN_CHAR) #define MMTYPE_VENDOR_VS_NW_INFO 0xA038 //Network Info MME #define MMTYPE_VENDOR_VS_NW_INFO_CNF 0xA039 //Network Info MME /***********************************************/ /************** V2GTP Payload Type ************/ /**********************************************/ #define V2GTP_PAYLOAD_TYPE_SDP_REQUEST 0x9000 //SDP request message #define V2GTP_PAYLOAD_TYPE_SDP_RESPONSE 0x9001 //SDP response message #define V2GTP_PAYLOAD_TYPE_EXI_MSG 0x8001 //EXI encoded V2G Message //Payload #define SDP_PAYLOAD_SECURITY_TLS 0x00 //0x00 = secured with TLS #define SDP_PAYLOAD_SECURITY_NONE 0x10 //0x10 = No transport layer security #define SDP_PAYLOAD_TRANS_PROTOCOL_TCP 0x00 //0x00= TCP #define SDP_PAYLOAD_TRANS_PROTOCOL_UDP 0x10 //0x10 = reserved for UDP /***********************************************/ /****** Timing and constant values **********/ /*********** [2015] ISO 15118_3 ***************/ /**********************************************/ #define C_EV_match_MNBC 0x0A #define TT_EVSE_SLAC_init 50 //unit: sec. #define TT_match_sequence 400 //unit: ms #define TT_EVSE_match_MNBC 6 //unit: 100ms #define TP_match_response 100 //unit: ms, General performance time for a response to a request #define TT_match_response 200 //unit: ms, Time that the EV/EVSE shall wait for a response from the EVSE/EV #define TP_EV_batch_msg_interval 50 //unit: ms #define TT_EVSE_match_session 10000 //unit: ms #define TT_match_join 12000 //unit: ms /***********************************************/ /*************** Structure *********************/ /**********************************************/ struct MmeHeader { unsigned char ODA[6]; //Original Destination Address unsigned char OSA[6]; //Original source Address //unsigned int VLAN Tag; //IEEE802.1Q VLAN Tag (optional) unsigned short MTYPE; //Ethernet Type for HomePlug, should be 0x88E1 unsigned char MMV; //Management Message Version unsigned short MMTYPE; //Management Message Type unsigned char FMI[2]; //Fragmentation Management Information, Fragmentation Message Sequence Number unsigned char MMENTRY[256]; //Management Message Entry Data } __attribute__((packed)); //Qualcomm Atheros Vendor Specific MME Format struct QcaVendorMmeHeader { unsigned char ODA[6]; //Original Destination Address unsigned char OSA[6]; //Original source Address //unsigned int VLAN Tag; //IEEE802.1Q VLAN Tag (optional) unsigned short MTYPE; //Ethernet Type for HomePlug, should be 0x88E1 unsigned char MMV; //Management Message Version unsigned short MMTYPE; //Management Message Type unsigned char OUI[3]; //Fragmentation Management Information, Fragmentation Message Sequence Number unsigned char MBODY[1024]; //Management Message Entry Data } __attribute__((packed)); struct V2gtpHeader { unsigned char ProtocolVersion; //0x01: V2GTP version 1, 0x00, 0x02-0xFF reserved unsigned char InverseProtocolVersion; //Equals the XOR 0xFF, 0xFE: V2GTP Version 1 unsigned short PayloadType; //0x8001: EXI encoded V2G Message, //0x9000: SDP request message, //0x9001: SDP response message, //0xA000 - 0xFFFF: Manufacturer specific use unsigned int PayloadLength; //excluding the generic V2GTP header byte } __attribute__((packed)); #endif