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 8struct 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 24struct 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 40struct 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