1 /* SPDX-License-Identifier: GPL-2.0-only 2 * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. 3 */ 4 5 #ifndef _LINUX_IF_RMNET_H_ 6 #define _LINUX_IF_RMNET_H_ 7 8 struct rmnet_map_header { 9 #if defined(__LITTLE_ENDIAN_BITFIELD) 10 u8 pad_len:6; 11 u8 reserved_bit:1; 12 u8 cd_bit:1; 13 #elif defined (__BIG_ENDIAN_BITFIELD) 14 u8 cd_bit:1; 15 u8 reserved_bit:1; 16 u8 pad_len:6; 17 #else 18 #error "Please fix <asm/byteorder.h>" 19 #endif 20 u8 mux_id; 21 __be16 pkt_len; 22 } __aligned(1); 23 24 struct rmnet_map_dl_csum_trailer { 25 u8 reserved1; 26 #if defined(__LITTLE_ENDIAN_BITFIELD) 27 u8 valid:1; 28 u8 reserved2:7; 29 #elif defined (__BIG_ENDIAN_BITFIELD) 30 u8 reserved2:7; 31 u8 valid:1; 32 #else 33 #error "Please fix <asm/byteorder.h>" 34 #endif 35 u16 csum_start_offset; 36 u16 csum_length; 37 __be16 csum_value; 38 } __aligned(1); 39 40 struct rmnet_map_ul_csum_header { 41 __be16 csum_start_offset; 42 #if defined(__LITTLE_ENDIAN_BITFIELD) 43 u16 csum_insert_offset:14; 44 u16 udp_ind:1; 45 u16 csum_enabled:1; 46 #elif defined (__BIG_ENDIAN_BITFIELD) 47 u16 csum_enabled:1; 48 u16 udp_ind:1; 49 u16 csum_insert_offset:14; 50 #else 51 #error "Please fix <asm/byteorder.h>" 52 #endif 53 } __aligned(1); 54 55 #endif /* !(_LINUX_IF_RMNET_H_) */ 56