* The set of memory regions is defined in configuration data.  They are
  * subject to these constraints:
  * - a zero offset and zero size represents and undefined region
+ * - a region's size does not include space for its "canary" values
  * - a region's offset is defined to be *past* all "canary" values
  * - offset must be large enough to account for all canaries
  * - a region's size may be zero, but may still have canaries
        IPA_MEM_AP_HEADER,              /* 0 canaries */
        IPA_MEM_MODEM_PROC_CTX,         /* 2 canaries */
        IPA_MEM_AP_PROC_CTX,            /* 0 canaries */
+       IPA_MEM_NAT_TABLE,              /* 4 canaries (IPA v4.5 and above) */
        IPA_MEM_PDN_CONFIG,             /* 2 canaries (IPA v4.0 and above) */
-       IPA_MEM_STATS_QUOTA,            /* 2 canaries (IPA v4.0 and above) */
+       IPA_MEM_STATS_QUOTA_MODEM,      /* 2 canaries (IPA v4.0 and above) */
+       IPA_MEM_STATS_QUOTA_AP,         /* 0 canaries (IPA v4.0 and above) */
        IPA_MEM_STATS_TETHERING,        /* 0 canaries (IPA v4.0 and above) */
+       IPA_MEM_STATS_V4_FILTER,        /* 0 canaries (IPA v4.0-v4.2) */
+       IPA_MEM_STATS_V6_FILTER,        /* 0 canaries (IPA v4.0-v4.2) */
+       IPA_MEM_STATS_V4_ROUTE,         /* 0 canaries (IPA v4.0-v4.2) */
+       IPA_MEM_STATS_V6_ROUTE,         /* 0 canaries (IPA v4.0-v4.2) */
+       IPA_MEM_STATS_FILTER_ROUTE,     /* 0 canaries (IPA v4.5 and above) */
        IPA_MEM_STATS_DROP,             /* 0 canaries (IPA v4.0 and above) */
        IPA_MEM_MODEM,                  /* 0 canaries */
        IPA_MEM_UC_EVENT_RING,          /* 1 canary */
 
        /* None of the stats fields are valid (IPA v4.0 and above) */
 
        if (ipa->version != IPA_VERSION_3_5_1) {
-               mem = &ipa->mem[IPA_MEM_STATS_QUOTA];
+               mem = &ipa->mem[IPA_MEM_STATS_QUOTA_MODEM];
                if (mem->size) {
                        req.hw_stats_quota_base_addr_valid = 1;
                        req.hw_stats_quota_base_addr =