0001
0002
0003
0004
0005 #ifndef _LINUX_IF_RMNET_H_
0006 #define _LINUX_IF_RMNET_H_
0007
0008 #include <linux/types.h>
0009
0010 struct rmnet_map_header {
0011 u8 flags;
0012 u8 mux_id;
0013 __be16 pkt_len;
0014 } __aligned(1);
0015
0016
0017
0018
0019
0020
0021 #define MAP_PAD_LEN_MASK GENMASK(5, 0)
0022 #define MAP_NEXT_HEADER_FLAG BIT(6)
0023 #define MAP_CMD_FLAG BIT(7)
0024
0025 struct rmnet_map_dl_csum_trailer {
0026 u8 reserved1;
0027 u8 flags;
0028 __be16 csum_start_offset;
0029 __be16 csum_length;
0030 __sum16 csum_value;
0031 } __aligned(1);
0032
0033
0034
0035
0036 #define MAP_CSUM_DL_VALID_FLAG BIT(0)
0037
0038 struct rmnet_map_ul_csum_header {
0039 __be16 csum_start_offset;
0040 __be16 csum_info;
0041 } __aligned(1);
0042
0043
0044
0045
0046
0047
0048 #define MAP_CSUM_UL_OFFSET_MASK GENMASK(13, 0)
0049 #define MAP_CSUM_UL_UDP_FLAG BIT(14)
0050 #define MAP_CSUM_UL_ENABLED_FLAG BIT(15)
0051
0052
0053 struct rmnet_map_v5_csum_header {
0054 u8 header_info;
0055 u8 csum_info;
0056 __be16 reserved;
0057 } __aligned(1);
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069 #define MAPV5_HDRINFO_NXT_HDR_FLAG BIT(0)
0070 #define MAPV5_HDRINFO_HDR_TYPE_FMASK GENMASK(7, 1)
0071 #define MAPV5_CSUMINFO_VALID_FLAG BIT(7)
0072
0073 #define RMNET_MAP_HEADER_TYPE_CSUM_OFFLOAD 2
0074 #endif