diff --git a/include/uapi/linux/ipa_qmi_service_v01.h b/include/uapi/linux/ipa_qmi_service_v01.h index 55148fd4f494..d79855aa3cc2 100644 --- a/include/uapi/linux/ipa_qmi_service_v01.h +++ b/include/uapi/linux/ipa_qmi_service_v01.h @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ /* @@ -52,6 +54,9 @@ #define QMI_IPA_IPFLTR_NUM_MEQ_32_EQNS_V01 2 #define QMI_IPA_MAX_PIPES_V01 20 #define QMI_IPA_MAX_PER_CLIENTS_V01 64 +#define QMI_IPA_MAX_RMNET_ETH_INFO_V01 19 +#define QMI_IPA_MAX_MAC_ADDR_LEN_V01 6 +#define QMI_IPA_MAX_IPV4_ADDR_LEN_V01 4 /* * Indicates presence of newly added member to support HW stats. @@ -113,6 +118,19 @@ enum ipa_platform_type_enum_v01 { /* To force a 32 bit signed enum. Do not change or use */ }; +enum ipa_eth_hw_config_enum_v01 { + IPA_QMI_ETH_HW_CONFIG_ENUM_MIN_ENUM_VAL_V01 = -2147483647, + /**< To force a 32 bit signed enum. Do not change or use*/ + IPA_QMI_ETH_HW_NONE_V01 = 0x00, + /**< Ethernet Setting HW Default \n */ + IPA_QMI_ETH_HW_VLAN_IP_V01 = 0x01, + /**< Ethernet HW VLAN+IP supported \n */ + IPA_QMI_ETH_HW_NON_VLAN_IP_V01 = 0x02, + /**< Ethernet HW NON_VLAN+IP supported */ + IPA_QMI_ETH_HW_CONFIG_ENUM_MAX_ENUM_VAL_V01 = 2147483647 + /**< To force a 32 bit signed enum. Do not change or use*/ +}; + #define QMI_IPA_PLATFORM_TYPE_LE_MHI_V01 \ QMI_IPA_PLATFORM_TYPE_LE_MHI_V01 @@ -538,6 +556,18 @@ struct ipa_indication_reg_req_msg_v01 { * message makes sense only when the QMI_IPA_INDICATION_REGISTER_REQ * is being originated from the master driver. */ + + /* Optional */ + /* Rmnet Ethernet MAC Information */ + __u8 rmnet_eth_mac_info_valid; + /* Must be set to true if rmnet_eth_mac_info is being passed */ + __u8 rmnet_eth_mac_info; + /* If set to TRUE, this field indicates that the client wants to + * receive indications about embeddd rmnet_eth mac info via + * QMI_IPA_RMNET_ETH_INFO_INDICATION. Setting this field in the request + * message makes sense only when the QMI_IPA_INDICATION_REGISTER_REQ is + * being originated from the master driver. + */ }; /* Message */ @@ -2559,6 +2589,7 @@ enum ipa_ic_type_enum_v01 { DATA_IC_TYPE_AP_V01 = 0x04, DATA_IC_TYPE_Q6_V01 = 0x05, DATA_IC_TYPE_UC_V01 = 0x06, + DATA_IC_TYPE_ETH_V01 = 0x07, IPA_IC_TYPE_ENUM_MAX_VAL_V01 = IPA_INT_MAX, }; @@ -2781,6 +2812,78 @@ struct ipa_move_nat_table_complt_ind_msg_v01 { }; /* Message */ #define QMI_IPA_NAT_TABLE_MOVE_COMPLETE_IND_MAX_MSG_LEN_V01 7 +/* + * Request Message; QMI request message to request for a dual-backhaul traffic + * offloading with ethernet and WWAN and notify the eth-header + */ +struct ipa_eth_backhaul_info_req_msg_v01 { + /* Mandatory */ + /* SRC MAC ADDR */ + __u8 src_mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01]; + /* src mac addr of eth hdr */ + /* Mandatory */ + /* DST MAC ADDR */ + __u8 dst_mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01]; + /* dst mac addr of eth hdr */ + /* Mandatory */ + /* IPv4 ADDR of ETH0 */ + __u32 ipv4_addr_eth0[QMI_IPA_MAX_IPV4_ADDR_LEN_V01]; + /* ipv4 addr of eth0 */ + /* Mandatory */ + /* ETH PIPE */ + __u8 eth_pipe; + /* Specifies eth pipe for Q6 to route UL pkts for ETH backhaul */ + /* Mandatory */ + /* ACTION */ + __u8 enable; + /* Specifies whether eth backhaul is enabled or disabled */ +}; /* Message */ +#define IPA_ETH_BACKHAUL_INFO_REQ_MSG_V01_MAX_MSG_LEN 45 + +/* Response Message; to notify the status of the dual-backhaul traffic + * offloading request using QMI_IPA_ETH_BACKHAUL_INFO_REQ + */ +struct ipa_eth_backhaul_info_resp_msg_v01 { + /* Mandatory */ + /* Result Code */ + struct ipa_qmi_response_type_v01 resp; + /* + * Standard response type. + * Standard response type. Contains the following data members: + * qmi_result_type -- QMI_RESULT_SUCCESS or QMI_RESULT_FAILURE + * qmi_error_type -- Error code. Possible error code values are + * described in the error codes section of each message definition. + */ +}; /* Message */ +#define IPA_ETH_BACKHAUL_INFO_RESP_MSG_V01_MAX_MSG_LEN 7 + +struct ipa_rmnet_eth_info_type_v01 { + __u8 mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01]; + /* mac addr of rmnet_eth */ + __u32 mux_id; + /* QMAP Mux ID. As a part of the QMAP protocol, + * several data calls may be multiplexed over the same physical transport + * channel. This identifier is used to identify one such data call. + * The maximum value for this identifier is 255. + */ +}; /* Type */ + +/* Indication Message; This is an indication to send rmnet ethernet information + * for embedded wireless ethernet PDU from the modem processor to + * the application processor + */ +struct ipa_rmnet_eth_info_indication_msg_v01 { + /* Optional */ + /* Rmnet Ethernet Information */ + __u8 rmnet_eth_info_valid; + /* Must be set to true if rmnet_eth_info is being passed */ + __u32 rmnet_eth_info_len; + /* Must be set to # of elements in rmnet_eth_info */ + struct ipa_rmnet_eth_info_type_v01 rmnet_eth_info[QMI_IPA_MAX_RMNET_ETH_INFO_V01]; + /* Rmnet Ethernet Info array */ +}; /* Message */ +#define IPA_RMNET_ETH_INFO_INDICATION_MSG_V01_MAX_MSG_LEN 194 + /*Service Message Definition*/ #define QMI_IPA_INDICATION_REGISTER_REQ_V01 0x0020 #define QMI_IPA_INDICATION_REGISTER_RESP_V01 0x0020 @@ -2839,6 +2942,9 @@ struct ipa_move_nat_table_complt_ind_msg_v01 { #define QMI_IPA_MOVE_NAT_REQ_V01 0x0046 #define QMI_IPA_MOVE_NAT_RESP_V01 0x0046 #define QMI_IPA_MOVE_NAT_COMPLETE_IND_V01 0x0046 +#define QMI_IPA_ETH_BACKHAUL_INFO_REQ_V01 0x0047 +#define QMI_IPA_ETH_BACKHAUL_INFO_RESP_V01 0x0047 +#define QMI_IPA_RMNET_ETH_INFO_INDICATION_V01 0x0048 /* add for max length*/ #define QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01 197