EvComm.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*===========================================================================
  2. Combined Charging System (CCS): SECC
  3. EVComm.h
  4. initiated by Vern, Joseph
  5. (since 2019/07/19)
  6. =============================================================================*/
  7. #ifndef EVCOMM_H_
  8. #define EVCOMM_H_
  9. #define QcaInterface "eth0"
  10. #define SupportBcbToggle
  11. #define SdpUdpServerPort 15118
  12. #define SdpTcpServerPort 59438 //49152-65535
  13. #define IPV6_LINK_LOCAL_PREFIX 0xFE80
  14. /***********************************************/
  15. /*********** Ethernet Type ********************/
  16. /**********************************************/
  17. #define EtherType_HomePlug 0x88E1
  18. /***********************************************/
  19. /*** MMTYPE (Management Message Type) **/
  20. /**********************************************/
  21. #define MMTYPE_CM_SET_KEY_REQ 0x6008
  22. #define MMTYPE_CM_SET_KEY_CNF 0x6009
  23. #define MMTYPE_CM_SLAC_PARM_REQ 0x6064
  24. #define MMTYPE_CM_SLAC_PARM_CNF 0x6065
  25. #define MMTYPE_CM_START_ATTEN_CHAR_IND 0x606A
  26. #define MMTYPE_CM_MNBC_SOUND_IND 0x6076
  27. #define MMTYPE_CM_ATTN_CHAR_IND 0x606E
  28. #define MMTYPE_CM_ATTN_CHAR_RSP 0x606F
  29. #define MMTYPE_CM_VALIDATE_REQ 0x6078
  30. #define MMTYPE_CM_VALIDATE_CNF 0x6079
  31. #define MMTYPE_CM_SLAC_MATCH_REQ 0x607C
  32. #define MMTYPE_CM_SLAC_MATCH_CNF 0x607D
  33. #define MMTYPE_CM_ATTEN_PROFILE_IND 0x6086
  34. //following are the vendor specific type
  35. #define MMTYPE_VENDOR_VS_HOST_ACTION 0xA062 //Embedded Host Action Requested Indication MME
  36. #define MMTYPE_VENDOR_ATTEN_CHAR 0xA14E //Attenuation Characteristics MME (VS_ATTEN_CHAR)
  37. #define MMTYPE_VENDOR_VS_NW_INFO 0xA038 //Network Info MME
  38. #define MMTYPE_VENDOR_VS_NW_INFO_CNF 0xA039 //Network Info MME
  39. /***********************************************/
  40. /************** V2GTP Payload Type ************/
  41. /**********************************************/
  42. #define V2GTP_PAYLOAD_TYPE_SDP_REQUEST 0x9000 //SDP request message
  43. #define V2GTP_PAYLOAD_TYPE_SDP_RESPONSE 0x9001 //SDP response message
  44. #define V2GTP_PAYLOAD_TYPE_EXI_MSG 0x8001 //EXI encoded V2G Message
  45. //Payload
  46. #define SDP_PAYLOAD_SECURITY_TLS 0x00 //0x00 = secured with TLS
  47. #define SDP_PAYLOAD_SECURITY_NONE 0x10 //0x10 = No transport layer security
  48. #define SDP_PAYLOAD_TRANS_PROTOCOL_TCP 0x00 //0x00= TCP
  49. #define SDP_PAYLOAD_TRANS_PROTOCOL_UDP 0x10 //0x10 = reserved for UDP
  50. /***********************************************/
  51. /****** Timing and constant values **********/
  52. /*********** [2015] ISO 15118_3 ***************/
  53. /**********************************************/
  54. #define C_EV_match_MNBC 0x0A
  55. #define TT_EVSE_SLAC_init 50 //unit: sec.
  56. #define TT_match_sequence 400 //unit: ms
  57. #define TT_EVSE_match_MNBC 6 //unit: 100ms
  58. #define TP_match_response 100 //unit: ms, General performance time for a response to a request
  59. #define TT_match_response 200 //unit: ms, Time that the EV/EVSE shall wait for a response from the EVSE/EV
  60. #define TP_EV_batch_msg_interval 50 //unit: ms
  61. #define TT_EVSE_match_session 10000 //unit: ms
  62. #define TT_match_join 12000 //unit: ms
  63. /***********************************************/
  64. /*************** Structure *********************/
  65. /**********************************************/
  66. struct MmeHeader
  67. {
  68. unsigned char ODA[6]; //Original Destination Address
  69. unsigned char OSA[6]; //Original source Address
  70. //unsigned int VLAN Tag; //IEEE802.1Q VLAN Tag (optional)
  71. unsigned short MTYPE; //Ethernet Type for HomePlug, should be 0x88E1
  72. unsigned char MMV; //Management Message Version
  73. unsigned short MMTYPE; //Management Message Type
  74. unsigned char FMI[2]; //Fragmentation Management Information, Fragmentation Message Sequence Number
  75. unsigned char MMENTRY[256]; //Management Message Entry Data
  76. } __attribute__((packed));
  77. //Qualcomm Atheros Vendor Specific MME Format
  78. struct QcaVendorMmeHeader
  79. {
  80. unsigned char ODA[6]; //Original Destination Address
  81. unsigned char OSA[6]; //Original source Address
  82. //unsigned int VLAN Tag; //IEEE802.1Q VLAN Tag (optional)
  83. unsigned short MTYPE; //Ethernet Type for HomePlug, should be 0x88E1
  84. unsigned char MMV; //Management Message Version
  85. unsigned short MMTYPE; //Management Message Type
  86. unsigned char OUI[3]; //Fragmentation Management Information, Fragmentation Message Sequence Number
  87. unsigned char MBODY[1024]; //Management Message Entry Data
  88. } __attribute__((packed));
  89. struct V2gtpHeader
  90. {
  91. unsigned char ProtocolVersion; //0x01: V2GTP version 1, 0x00, 0x02-0xFF reserved
  92. unsigned char InverseProtocolVersion; //Equals the <Protocol_Version> XOR 0xFF, 0xFE: V2GTP Version 1
  93. unsigned short PayloadType; //0x8001: EXI encoded V2G Message,
  94. //0x9000: SDP request message,
  95. //0x9001: SDP response message,
  96. //0xA000 - 0xFFFF: Manufacturer specific use
  97. unsigned int PayloadLength; //excluding the generic V2GTP header byte
  98. } __attribute__((packed));
  99. #endif