eth_lm_dm_pack.h (4379B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: eth_lm_dm_pack.h 8 * Purpose: Interface to pack and unpack routines common to 9 * SDK and uKernel for: 10 * - ETH_LM_DM Control messages 11 * - Network Packet headers 12 * 13 * This is to be shared between SDK host and uKernel. 14 */ 15 16 #ifndef _ETH_LM_DM_PACK_H_ 17 #define _ETH_LM_DM_PACK_H_ 18 19 #ifdef BCM_UKERNEL 20 /* Build for uKernel not SDK */ 21 #include "sdk_typedefs.h" 22 #else 23 #include <bcm/types.h> 24 #endif 25 26 #include <soc/shared/eth_lm_dm_msg.h> 27 #include <soc/shared/eth_lm_dm_pkt.h> 28 29 /* 30 * TLV Types 31 */ 32 #define SHR_ETH_LM_DM_TLV_END 0x00 33 34 35 #define SHR_ETH_LM_DM_ID_ZERO_LEN 24 36 #define _ETH_LM_DM_MAC_ADDR_LENGTH 6 37 38 39 /* ETH_LM_DM Control Messages pack/unpack */ 40 extern uint8 * 41 shr_eth_lm_dm_msg_ctrl_init_pack(uint8 *buf, shr_eth_lm_dm_msg_ctrl_init_t *msg); 42 extern uint8 * 43 shr_eth_lm_dm_msg_ctrl_init_unpack(uint8 *buf, shr_eth_lm_dm_msg_ctrl_init_t *msg); 44 45 extern uint8 * 46 shr_eth_lm_dm_msg_ctrl_sess_set_pack(uint8 *buf, 47 shr_eth_lm_dm_msg_ctrl_sess_set_t *msg); 48 extern uint8 * 49 shr_eth_lm_dm_msg_ctrl_sess_set_unpack(uint8 *buf, 50 shr_eth_lm_dm_msg_ctrl_sess_set_t *msg); 51 52 extern uint8 * 53 shr_eth_lm_dm_msg_ctrl_sess_get_pack(uint8 *buf, 54 shr_eth_lm_dm_msg_ctrl_sess_get_t *msg); 55 extern uint8 * 56 shr_eth_lm_dm_msg_ctrl_sess_get_unpack(uint8 *buf, 57 shr_eth_lm_dm_msg_ctrl_sess_get_t *msg); 58 59 extern uint8 * 60 shr_eth_lm_dm_msg_ctrl_sess_delete_pack(uint8 *buf, 61 shr_eth_lm_dm_msg_ctrl_sess_delete_t *msg); 62 extern uint8 * 63 shr_eth_lm_dm_msg_ctrl_sess_delete_unpack(uint8 *buf, 64 shr_eth_lm_dm_msg_ctrl_sess_delete_t *msg); 65 66 extern uint8 * 67 shr_eth_lm_dm_msg_ctrl_stat_req_pack(uint8 *buf, 68 shr_eth_lm_dm_msg_ctrl_stat_req_t *msg); 69 extern uint8 * 70 shr_eth_lm_dm_msg_ctrl_stat_req_unpack(uint8 *buf, 71 shr_eth_lm_dm_msg_ctrl_stat_req_t *msg); 72 73 extern uint8 * 74 shr_eth_lm_dm_msg_ctrl_stat_reply_pack(uint8 *buf, 75 shr_eth_lm_dm_msg_ctrl_stat_reply_t *msg); 76 extern uint8 * 77 shr_eth_lm_dm_msg_ctrl_stat_reply_unpack(uint8 *buf, 78 shr_eth_lm_dm_msg_ctrl_stat_reply_t *msg); 79 extern uint8 * 80 shr_eth_lm_dm_msg_ctrl_loss_add_pack(uint8 *buf, 81 shr_eth_lm_dm_msg_ctrl_loss_add_t *msg); 82 extern uint8 * 83 shr_eth_lm_dm_msg_ctrl_loss_add_unpack(uint8 *buf, 84 shr_eth_lm_dm_msg_ctrl_loss_add_t *msg); 85 extern uint8 * 86 shr_eth_lm_dm_msg_ctrl_loss_delete_pack(uint8 *buf, 87 shr_eth_lm_dm_msg_ctrl_loss_delete_t *msg); 88 extern uint8 * 89 shr_eth_lm_dm_msg_ctrl_loss_delete_unpack(uint8 *buf, 90 shr_eth_lm_dm_msg_ctrl_loss_delete_t *msg); 91 extern uint8 * 92 shr_eth_lm_dm_msg_ctrl_loss_get_pack(uint8 *buf, 93 shr_eth_lm_dm_msg_ctrl_loss_get_t *msg); 94 extern uint8 * 95 shr_eth_lm_dm_msg_ctrl_loss_get_unpack(uint8 *buf, 96 shr_eth_lm_dm_msg_ctrl_loss_get_t *msg); 97 extern uint8 * 98 shr_eth_lm_dm_msg_ctrl_delay_add_pack(uint8 *buf, 99 shr_eth_lm_dm_msg_ctrl_delay_add_t *msg); 100 extern uint8 * 101 shr_eth_lm_dm_msg_ctrl_delay_add_unpack(uint8 *buf, 102 shr_eth_lm_dm_msg_ctrl_delay_add_t *msg); 103 extern uint8 * 104 shr_eth_lm_dm_msg_ctrl_delay_delete_pack(uint8 *buf, 105 shr_eth_lm_dm_msg_ctrl_delay_delete_t *msg); 106 extern uint8 * 107 shr_eth_lm_dm_msg_ctrl_delay_delete_unpack(uint8 *buf, 108 shr_eth_lm_dm_msg_ctrl_delay_delete_t *msg); 109 extern uint8 * 110 shr_eth_lm_dm_msg_ctrl_delay_get_pack(uint8 *buf, 111 shr_eth_lm_dm_msg_ctrl_delay_get_t *msg); 112 extern uint8 * 113 shr_eth_lm_dm_msg_ctrl_delay_get_unpack(uint8 *buf, 114 shr_eth_lm_dm_msg_ctrl_delay_get_t *msg); 115 116 117 /* ETH_LM_DM Network Packet headers pack/unpack */ 118 extern uint8 * 119 shr_eth_lm_dm_header_pack(uint8 *buf, shr_eth_lm_dm_header_t *eth_lm_dm); 120 extern uint8 * 121 shr_eth_lm_dm_header_unpack(uint8 *buf, shr_eth_lm_dm_header_t *eth_lm_dm); 122 extern uint8 * 123 shr_eth_lm_dm_slm_info_header_pack(uint8 *buf, shr_eth_lm_dm_slm_info_header_t *eth_lm_dm_slm_info); 124 extern uint8 * 125 shr_eth_lm_dm_slm_info_header_unpack(uint8 *buf, shr_eth_lm_dm_slm_info_header_t *eth_lm_dm_slm_info); 126 #endif /* _ETH_LM_DM_PACK_H_ */