/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef _RMNET_DATA_H_ #define _RMNET_DATA_H_ #define RMNET_LOCAL_LOGICAL_ENDPOINT - 1 #define RMNET_EGRESS_FORMAT__RESERVED__ (1 << 0) #define RMNET_EGRESS_FORMAT_MAP (1 << 1) #define RMNET_EGRESS_FORMAT_AGGREGATION (1 << 2) #define RMNET_EGRESS_FORMAT_MUXING (1 << 3) #define RMNET_EGRESS_FORMAT_MAP_CKSUMV3 (1 << 4) #define RMNET_EGRESS_FORMAT_MAP_CKSUMV4 (1 << 5) #define RMNET_INGRESS_FIX_ETHERNET (1 << 0) #define RMNET_INGRESS_FORMAT_MAP (1 << 1) #define RMNET_INGRESS_FORMAT_DEAGGREGATION (1 << 2) #define RMNET_INGRESS_FORMAT_DEMUXING (1 << 3) #define RMNET_INGRESS_FORMAT_MAP_COMMANDS (1 << 4) #define RMNET_INGRESS_FORMAT_MAP_CKSUMV3 (1 << 5) #define RMNET_INGRESS_FORMAT_MAP_CKSUMV4 (1 << 6) #define RMNET_NETLINK_PROTO 31 #define RMNET_MAX_STR_LEN 16 #define RMNET_NL_DATA_MAX_LEN 64 #define RMNET_NETLINK_MSG_COMMAND 0 #define RMNET_NETLINK_MSG_RETURNCODE 1 #define RMNET_NETLINK_MSG_RETURNDATA 2 struct rmnet_nl_msg_s { uint16_t reserved; uint16_t message_type; uint16_t reserved2 : 14; uint16_t crd : 2; union { uint16_t arg_length; uint16_t return_code; }; union { uint8_t data[RMNET_NL_DATA_MAX_LEN]; struct { uint8_t dev[RMNET_MAX_STR_LEN]; uint32_t flags; uint16_t agg_size; uint16_t agg_count; uint8_t tail_spacing; } data_format; struct { uint8_t dev[RMNET_MAX_STR_LEN]; int32_t ep_id; uint8_t operating_mode; uint8_t next_dev[RMNET_MAX_STR_LEN]; } local_ep_config; struct { uint32_t id; uint8_t vnd_name[RMNET_MAX_STR_LEN]; } vnd; struct { uint32_t id; uint32_t map_flow_id; uint32_t tc_flow_id; } flow_control; }; }; enum rmnet_netlink_message_types_e { RMNET_NETLINK_ASSOCIATE_NETWORK_DEVICE, RMNET_NETLINK_UNASSOCIATE_NETWORK_DEVICE, RMNET_NETLINK_GET_NETWORK_DEVICE_ASSOCIATED, RMNET_NETLINK_SET_LINK_EGRESS_DATA_FORMAT, RMNET_NETLINK_GET_LINK_EGRESS_DATA_FORMAT, RMNET_NETLINK_SET_LINK_INGRESS_DATA_FORMAT, RMNET_NETLINK_GET_LINK_INGRESS_DATA_FORMAT, RMNET_NETLINK_SET_LOGICAL_EP_CONFIG, RMNET_NETLINK_UNSET_LOGICAL_EP_CONFIG, RMNET_NETLINK_GET_LOGICAL_EP_CONFIG, RMNET_NETLINK_NEW_VND, RMNET_NETLINK_NEW_VND_WITH_PREFIX, RMNET_NETLINK_GET_VND_NAME, RMNET_NETLINK_FREE_VND, RMNET_NETLINK_ADD_VND_TC_FLOW, RMNET_NETLINK_DEL_VND_TC_FLOW, RMNET_NETLINK_NEW_VND_WITH_NAME }; #define RMNET_NETLINK_NEW_VND_WITH_NAME RMNET_NETLINK_NEW_VND_WITH_NAME enum rmnet_config_endpoint_modes_e { RMNET_EPMODE_NONE, RMNET_EPMODE_VND, RMNET_EPMODE_BRIDGE, RMNET_EPMODE_LENGTH }; enum rmnet_config_return_codes_e { RMNET_CONFIG_OK, RMNET_CONFIG_UNKNOWN_MESSAGE, RMNET_CONFIG_UNKNOWN_ERROR, RMNET_CONFIG_NOMEM, RMNET_CONFIG_DEVICE_IN_USE, RMNET_CONFIG_INVALID_REQUEST, RMNET_CONFIG_NO_SUCH_DEVICE, RMNET_CONFIG_BAD_ARGUMENTS, RMNET_CONFIG_BAD_EGRESS_DEVICE, RMNET_CONFIG_TC_HANDLE_FULL }; #endif