43 #ifndef _SIXTOP_6P_PACKET_H_ 44 #define _SIXTOP_6P_PACKET_H_ 46 #define SIXP_PKT_VERSION 0x00 49 typedef uint8_t sixp_pkt_version_t;
50 typedef uint8_t sixp_pkt_cell_options_t;
51 typedef uint8_t sixp_pkt_num_cells_t;
52 typedef uint8_t sixp_pkt_reserved_t;
53 typedef uint16_t sixp_pkt_metadata_t;
54 typedef uint16_t sixp_pkt_max_num_cells_t;
55 typedef uint16_t sixp_pkt_offset_t;
56 typedef uint32_t sixp_pkt_cell_t;
57 typedef uint16_t sixp_pkt_total_num_cells_t;
141 sixp_pkt_metadata_t metadata,
142 uint8_t *body, uint16_t body_len);
154 sixp_pkt_metadata_t *metadata,
155 const uint8_t *body, uint16_t body_len);
167 sixp_pkt_cell_options_t cell_options,
168 uint8_t *body, uint16_t body_len);
180 sixp_pkt_cell_options_t *cell_options,
181 const uint8_t *body, uint16_t body_len);
193 sixp_pkt_num_cells_t num_cells,
194 uint8_t *body, uint16_t body_len);
206 sixp_pkt_num_cells_t *num_cells,
207 const uint8_t *body, uint16_t body_len);
218 sixp_pkt_reserved_t reserved,
219 uint8_t *body, uint16_t body_len);
231 sixp_pkt_reserved_t *reserved,
232 const uint8_t *body, uint16_t body_len);
244 sixp_pkt_offset_t offset,
245 uint8_t *body, uint16_t body_len);
256 sixp_pkt_offset_t *offset,
257 const uint8_t *body, uint16_t body_len);
270 sixp_pkt_max_num_cells_t max_num_cells,
271 uint8_t *body, uint16_t body_len);
284 sixp_pkt_max_num_cells_t *max_num_cells,
285 const uint8_t *body, uint16_t body_len);
300 const uint8_t *cell_list,
301 uint16_t cell_list_len,
303 uint8_t *body, uint16_t body_len);
316 const uint8_t **cell_list,
317 sixp_pkt_offset_t *cell_list_len,
318 const uint8_t *body, uint16_t body_len);
333 const uint8_t *rel_cell_list,
334 uint16_t rel_cell_list_len,
336 uint8_t *body, uint16_t body_len);
353 const uint8_t **rel_cell_list,
354 sixp_pkt_offset_t *rel_cell_list_len,
355 const uint8_t *body, uint16_t body_len);
370 const uint8_t *cand_cell_list,
371 uint16_t cand_cell_list_len,
373 uint8_t *body, uint16_t body_len);
389 const uint8_t **cand_cell_list,
390 sixp_pkt_offset_t *cand_cell_list_len,
391 const uint8_t *body, uint16_t body_len);
403 sixp_pkt_total_num_cells_t total_num_cells,
404 uint8_t *body, uint16_t body_len);
416 sixp_pkt_total_num_cells_t *total_num_cells,
417 const uint8_t *body, uint16_t body_len);
430 const uint8_t *payload, uint16_t payload_len,
431 uint8_t *body, uint16_t body_len);
444 uint8_t *buf, uint16_t buf_len,
445 const uint8_t *body, uint16_t body_len);
470 uint8_t sfid, uint8_t seqno,
471 const uint8_t *body, uint16_t body_len,
int sixp_pkt_get_metadata(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_metadata_t *metadata, const uint8_t *body, uint16_t body_len)
Read Metadata stored in "Other Fields" of 6P packet.
sixp_pkt_cmd_t
6P Command Identifiers
sixp_pkt_type_t
6P Message Types
int sixp_pkt_get_reserved(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_reserved_t *reserved, const uint8_t *body, uint16_t body_len)
Read Reserved in "Other Fields" of 6P packet.
sixp_pkt_code_t code
Code.
int sixp_pkt_get_cand_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t **cand_cell_list, sixp_pkt_offset_t *cand_cell_list_len, const uint8_t *body, uint16_t body_len)
Read CandCellList in "Other Fields" of 6P packet.
int sixp_pkt_set_cell_options(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_cell_options_t cell_options, uint8_t *body, uint16_t body_len)
Write CellOptions in "Other Fields" of 6P packet.
sixp_pkt_rc_t
6P Return Codes
int sixp_pkt_get_payload(sixp_pkt_type_t type, sixp_pkt_code_t code, uint8_t *buf, uint16_t buf_len, const uint8_t *body, uint16_t body_len)
Read Payload in "Other Fields" of 6P packet.
int sixp_pkt_get_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_num_cells_t *num_cells, const uint8_t *body, uint16_t body_len)
Read NumCells in "Other Fields" of 6P packet.
uint16_t body_len
The length of Other Fields.
sixp_pkt_rc_t rc
6P Return Code
int sixp_pkt_get_cell_options(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_cell_options_t *cell_options, const uint8_t *body, uint16_t body_len)
Read CellOptions in "Other Fields" of 6P packet.
int sixp_pkt_set_total_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_total_num_cells_t total_num_cells, uint8_t *body, uint16_t body_len)
Write TotalNumCells in "Other Fields" of 6P packet.
int sixp_pkt_get_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t **cell_list, sixp_pkt_offset_t *cell_list_len, const uint8_t *body, uint16_t body_len)
Read CellList in "Other Fields" of 6P packet.
int sixp_pkt_set_cand_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t *cand_cell_list, uint16_t cand_cell_list_len, uint16_t cell_offset, uint8_t *body, uint16_t body_len)
Write CandCellList in "Other Fields" of 6P packet.
uint8_t value
8-bit unsigned integer value
int sixp_pkt_set_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_num_cells_t num_cells, uint8_t *body, uint16_t body_len)
Write NumCells in "Other Fields" of 6P packet.
int sixp_pkt_get_offset(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_offset_t *cell_offset, const uint8_t *body, uint16_t body_len)
Read Offset in "Other Fields" of 6P packet.
int sixp_pkt_get_rel_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t **rel_cell_list, sixp_pkt_offset_t *rel_cell_list_len, const uint8_t *body, uint16_t body_len)
Read RelCellList in "Other Fields" of 6P packet.
6P Codes integrating Command IDs and Return Codes
int sixp_pkt_set_payload(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t *payload, uint16_t payload_len, uint8_t *body, uint16_t body_len)
Write Payload in "Other Fields" of 6P packet.
int sixp_pkt_get_max_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_max_num_cells_t *max_num_cells, const uint8_t *body, uint16_t body_len)
Read MaxNumCells in "Other Fields" of 6P packet.
int sixp_pkt_set_max_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_max_num_cells_t max_num_cells, uint8_t *body, uint16_t body_len)
Write MaxNumCells in "Other Fields" of 6P packet.
int sixp_pkt_set_offset(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_offset_t cell_offset, uint8_t *body, uint16_t body_len)
Write Offset in "Other Fields" of 6P packet.
const uint8_t * body
Other Fields...
int sixp_pkt_set_rel_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t *rel_cell_list, uint16_t rel_cell_list_len, uint16_t cell_offset, uint8_t *body, uint16_t body_len)
Write RelCellList in "Other Fields" of 6P packet.
sixp_pkt_type_t type
Type.
sixp_pkt_cell_option_t
6P Cell Options
int sixp_pkt_set_metadata(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_metadata_t metadata, uint8_t *body, uint16_t body_len)
Write Metadata into "Other Fields" of 6P packet.
int sixp_pkt_parse(const uint8_t *buf, uint16_t len, sixp_pkt_t *pkt)
Parse a 6P packet.
int sixp_pkt_get_total_num_cells(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_total_num_cells_t *total_num_cells, const uint8_t *body, uint16_t body_len)
Read TotalNumCells in "Other Fields" of 6P packet.
int sixp_pkt_set_cell_list(sixp_pkt_type_t type, sixp_pkt_code_t code, const uint8_t *cell_list, uint16_t cell_list_len, uint16_t cell_offset, uint8_t *body, uint16_t body_len)
Write CellList in "Other Fields" of 6P packet.
sixp_pkt_cmd_t cmd
6P Command Identifier
int sixp_pkt_create(sixp_pkt_type_t type, sixp_pkt_code_t code, uint8_t sfid, uint8_t seqno, const uint8_t *body, uint16_t body_len, sixp_pkt_t *pkt)
Create a 6P packet.
int sixp_pkt_set_reserved(sixp_pkt_type_t type, sixp_pkt_code_t code, sixp_pkt_reserved_t reserved, uint8_t *body, uint16_t body_len)
Write Reserved in "Other Fields" of 6P packet.
sixp_pkt_version_t version
Version.