diff --git a/include/uapi/linux/msm_ipa.h b/include/uapi/linux/msm_ipa.h index 63f21763394a..b6ad02a7ea3c 100644 --- a/include/uapi/linux/msm_ipa.h +++ b/include/uapi/linux/msm_ipa.h @@ -219,6 +219,11 @@ #define IPA_CV2X_SUPPORT +/** + * Max number of delegated IDUs for prefix delegation FR + */ +#define IPA_PREFIX_MAPPING_MAX 16 + /** * the attributes of the rule (routing or filtering) */ @@ -3423,14 +3428,20 @@ enum ipa_ext_router_mode { * struct ipa_ioc_ext_router_info - provide ext_router info * @ipa_ext_router_mode: prefix sharing, prefix delegation, or disabled mode * @pdn_name: PDN interface name - * @ipv6_addr: the prefix addr used for dummy or delegated prefixes + * @ipv6_addr: the prefix addr used for the dummy prefix. (prefix sharing mode) * @ipv6_mask: the ipv6 mask used to mask above addr to get the correct prefix + * @num_of_del_prefix_mapping: number of delegated prefix to IDU IP mapping + * @idu_del_wan_ip: array of IDU WAN IP to be mapped to a delegated prefix + * @idu_del_client_prefix: Array of delegated prefixes */ struct ipa_ioc_ext_router_info { enum ipa_ext_router_mode mode; char pdn_name[IPA_RESOURCE_NAME_MAX]; uint32_t ipv6_addr[4]; uint32_t ipv6_mask[4]; + int num_of_idu_prefix_mapping; + uint32_t idu_wan_ip[IPA_PREFIX_MAPPING_MAX][4]; + uint32_t idu_client_prefix[IPA_PREFIX_MAPPING_MAX][4]; }; /**