diff --git a/polkadot/runtime/parachains/src/configuration.rs b/polkadot/runtime/parachains/src/configuration.rs
index b5dad6c6e864ba94854e3b56198c75f894f89ce7..34923897f02b38891ca7af122f48ee91988a483e 100644
--- a/polkadot/runtime/parachains/src/configuration.rs
+++ b/polkadot/runtime/parachains/src/configuration.rs
@@ -30,7 +30,7 @@ use primitives::{
 	NodeFeatures, SessionIndex, LEGACY_MIN_BACKING_VOTES, MAX_CODE_SIZE, MAX_HEAD_DATA_SIZE,
 	MAX_POV_SIZE, ON_DEMAND_MAX_QUEUE_MAX_SIZE,
 };
-use sp_runtime::{traits::Zero, Perbill};
+use sp_runtime::{traits::Zero, Perbill, Percent};
 use sp_std::prelude::*;
 
 #[cfg(test)]
@@ -1460,3 +1460,16 @@ impl<T: Config> Pallet<T> {
 		Ok(())
 	}
 }
+
+/// The implementation of `Get<(u32, u32)>` which reads `ActiveConfig` and returns `P` percent of
+/// `hrmp_channel_max_message_size` / `hrmp_channel_max_capacity`.
+pub struct ActiveConfigHrmpChannelSizeAndCapacityRatio<T, P>(sp_std::marker::PhantomData<(T, P)>);
+impl<T: crate::hrmp::pallet::Config, P: Get<Percent>> Get<(u32, u32)>
+	for ActiveConfigHrmpChannelSizeAndCapacityRatio<T, P>
+{
+	fn get() -> (u32, u32) {
+		let config = ActiveConfig::<T>::get();
+		let percent = P::get();
+		(percent * config.hrmp_channel_max_message_size, percent * config.hrmp_channel_max_capacity)
+	}
+}
diff --git a/polkadot/runtime/parachains/src/configuration/tests.rs b/polkadot/runtime/parachains/src/configuration/tests.rs
index 239b466fde3970babec24ad109a22e16be2c9066..64bbb8481fc1ba63ff8f851aa8b3d2ba5d6bd7df 100644
--- a/polkadot/runtime/parachains/src/configuration/tests.rs
+++ b/polkadot/runtime/parachains/src/configuration/tests.rs
@@ -17,7 +17,7 @@
 use super::*;
 use crate::{
 	configuration,
-	mock::{new_test_ext, Configuration, ParasShared, RuntimeOrigin, Test},
+	mock::{new_test_ext, Configuration, MockGenesisConfig, ParasShared, RuntimeOrigin, Test},
 };
 use bitvec::{bitvec, prelude::Lsb0};
 use frame_support::{assert_err, assert_noop, assert_ok};
@@ -547,3 +547,51 @@ fn verify_externally_accessible() {
 		);
 	});
 }
+
+#[test]
+fn active_config_hrmp_channel_size_and_capacity_ratio_works() {
+	frame_support::parameter_types! {
+		pub Ratio100: Percent = Percent::from_percent(100);
+		pub Ratio50: Percent = Percent::from_percent(50);
+	}
+
+	let mut genesis: MockGenesisConfig = Default::default();
+	genesis.configuration.config.hrmp_channel_max_message_size = 1024;
+	genesis.configuration.config.hrmp_channel_max_capacity = 100;
+
+	new_test_ext(genesis).execute_with(|| {
+		let active_config = configuration::ActiveConfig::<Test>::get();
+		assert_eq!(active_config.hrmp_channel_max_message_size, 1024);
+		assert_eq!(active_config.hrmp_channel_max_capacity, 100);
+
+		assert_eq!(
+			ActiveConfigHrmpChannelSizeAndCapacityRatio::<Test, Ratio100>::get(),
+			(1024, 100)
+		);
+		assert_eq!(ActiveConfigHrmpChannelSizeAndCapacityRatio::<Test, Ratio50>::get(), (512, 50));
+
+		// change ActiveConfig
+		assert_ok!(Configuration::set_hrmp_channel_max_message_size(
+			RuntimeOrigin::root(),
+			active_config.hrmp_channel_max_message_size * 4
+		));
+		assert_ok!(Configuration::set_hrmp_channel_max_capacity(
+			RuntimeOrigin::root(),
+			active_config.hrmp_channel_max_capacity * 4
+		));
+		on_new_session(1);
+		on_new_session(2);
+		let active_config = configuration::ActiveConfig::<Test>::get();
+		assert_eq!(active_config.hrmp_channel_max_message_size, 4096);
+		assert_eq!(active_config.hrmp_channel_max_capacity, 400);
+
+		assert_eq!(
+			ActiveConfigHrmpChannelSizeAndCapacityRatio::<Test, Ratio100>::get(),
+			(4096, 400)
+		);
+		assert_eq!(
+			ActiveConfigHrmpChannelSizeAndCapacityRatio::<Test, Ratio50>::get(),
+			(2048, 200)
+		);
+	})
+}
diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs
index 287ae9937da4b86bffe21f4d5cb7cc526e76d015..a52d800ad386cd63afb48fc5faa5a59819973f7b 100644
--- a/polkadot/runtime/rococo/src/lib.rs
+++ b/polkadot/runtime/rococo/src/lib.rs
@@ -53,6 +53,7 @@ use runtime_common::{
 use runtime_parachains::{
 	assigner_coretime as parachains_assigner_coretime,
 	assigner_on_demand as parachains_assigner_on_demand, configuration as parachains_configuration,
+	configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio,
 	coretime, disputes as parachains_disputes,
 	disputes::slashing as parachains_slashing,
 	dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion,
@@ -1033,7 +1034,7 @@ impl pallet_message_queue::Config for Runtime {
 impl parachains_dmp::Config for Runtime {}
 
 parameter_types! {
-	pub const DefaultChannelSizeAndCapacityWithSystem: (u32, u32) = (51200, 500);
+	pub const HrmpChannelSizeAndCapacityWithSystemRatio: Percent = Percent::from_percent(100);
 }
 
 impl parachains_hrmp::Config for Runtime {
@@ -1041,7 +1042,10 @@ impl parachains_hrmp::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type ChannelManager = EnsureRoot<AccountId>;
 	type Currency = Balances;
-	type DefaultChannelSizeAndCapacityWithSystem = DefaultChannelSizeAndCapacityWithSystem;
+	type DefaultChannelSizeAndCapacityWithSystem = ActiveConfigHrmpChannelSizeAndCapacityRatio<
+		Runtime,
+		HrmpChannelSizeAndCapacityWithSystemRatio,
+	>;
 	type WeightInfo = weights::runtime_parachains_hrmp::WeightInfo<Runtime>;
 }
 
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
index 97b84155b36a6adb2258a714e65bf5c70bc9aa50..1d83e97ef0e5be54fe5298933d3959663c1ef771 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
@@ -16,25 +16,26 @@
 
 //! Autogenerated weights for `runtime_parachains::hrmp`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-04-30, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-unxyhko3-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// ./target/production/polkadot
+// target/production/polkadot
 // benchmark
 // pallet
-// --chain=rococo-dev
 // --steps=50
 // --repeat=20
-// --pallet=runtime_parachains::hrmp
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_hrmp.rs
+// --heap-pages=4096
+// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
+// --pallet=runtime_parachains::hrmp
+// --chain=rococo-dev
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,105 +48,97 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::hrmp`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInfo<T> {
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_init_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `704`
-		//  Estimated: `6644`
-		// Minimum execution time: 41_564_000 picoseconds.
-		Weight::from_parts(42_048_000, 0)
-			.saturating_add(Weight::from_parts(0, 6644))
-			.saturating_add(T::DbWeight::get().reads(10))
+		//  Measured:  `488`
+		//  Estimated: `3953`
+		// Minimum execution time: 34_034_000 picoseconds.
+		Weight::from_parts(35_191_000, 0)
+			.saturating_add(Weight::from_parts(0, 3953))
+			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_accept_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
-		//  Estimated: `4401`
-		// Minimum execution time: 43_570_000 picoseconds.
-		Weight::from_parts(44_089_000, 0)
-			.saturating_add(Weight::from_parts(0, 4401))
-			.saturating_add(T::DbWeight::get().reads(7))
+		//  Measured:  `478`
+		//  Estimated: `3943`
+		// Minimum execution time: 30_115_000 picoseconds.
+		Weight::from_parts(31_060_000, 0)
+			.saturating_add(Weight::from_parts(0, 3943))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_close_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `807`
-		//  Estimated: `4272`
-		// Minimum execution time: 36_594_000 picoseconds.
-		Weight::from_parts(37_090_000, 0)
-			.saturating_add(Weight::from_parts(0, 4272))
-			.saturating_add(T::DbWeight::get().reads(6))
+		//  Measured:  `591`
+		//  Estimated: `4056`
+		// Minimum execution time: 30_982_000 picoseconds.
+		Weight::from_parts(32_034_000, 0)
+			.saturating_add(Weight::from_parts(0, 4056))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:254 w:254)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:254)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:254 w:254)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:254)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 127]`.
 	/// The range of component `e` is `[0, 127]`.
 	fn force_clean_hrmp(i: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `264 + e * (100 ±0) + i * (100 ±0)`
-		//  Estimated: `3726 + e * (2575 ±0) + i * (2575 ±0)`
-		// Minimum execution time: 1_085_140_000 picoseconds.
-		Weight::from_parts(1_100_901_000, 0)
-			.saturating_add(Weight::from_parts(0, 3726))
-			// Standard Error: 98_982
-			.saturating_add(Weight::from_parts(3_229_112, 0).saturating_mul(i.into()))
-			// Standard Error: 98_982
-			.saturating_add(Weight::from_parts(3_210_944, 0).saturating_mul(e.into()))
+		//  Measured:  `297 + e * (100 ±0) + i * (100 ±0)`
+		//  Estimated: `3759 + e * (2575 ±0) + i * (2575 ±0)`
+		// Minimum execution time: 1_158_665_000 picoseconds.
+		Weight::from_parts(1_164_378_000, 0)
+			.saturating_add(Weight::from_parts(0, 3759))
+			// Standard Error: 103_726
+			.saturating_add(Weight::from_parts(3_444_855, 0).saturating_mul(i.into()))
+			// Standard Error: 103_726
+			.saturating_add(Weight::from_parts(3_527_628, 0).saturating_mul(e.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into())))
@@ -155,139 +148,139 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(e.into()))
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(i.into()))
 	}
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:256 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:256 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_open(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `779 + c * (136 ±0)`
-		//  Estimated: `2234 + c * (5086 ±0)`
-		// Minimum execution time: 10_497_000 picoseconds.
-		Weight::from_parts(6_987_455, 0)
-			.saturating_add(Weight::from_parts(0, 2234))
-			// Standard Error: 18_540
-			.saturating_add(Weight::from_parts(18_788_534, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(2))
+		//  Measured:  `525 + c * (136 ±0)`
+		//  Estimated: `1980 + c * (5086 ±0)`
+		// Minimum execution time: 5_870_000 picoseconds.
+		Weight::from_parts(2_363_864, 0)
+			.saturating_add(Weight::from_parts(0, 1980))
+			// Standard Error: 16_657
+			.saturating_add(Weight::from_parts(20_507_232, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 5086).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_close(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `335 + c * (124 ±0)`
-		//  Estimated: `1795 + c * (2600 ±0)`
-		// Minimum execution time: 6_575_000 picoseconds.
-		Weight::from_parts(1_228_642, 0)
-			.saturating_add(Weight::from_parts(0, 1795))
-			// Standard Error: 14_826
-			.saturating_add(Weight::from_parts(11_604_038, 0).saturating_mul(c.into()))
+		//  Measured:  `368 + c * (124 ±0)`
+		//  Estimated: `1828 + c * (2600 ±0)`
+		// Minimum execution time: 4_766_000 picoseconds.
+		Weight::from_parts(4_988_812, 0)
+			.saturating_add(Weight::from_parts(0, 1828))
+			// Standard Error: 10_606
+			.saturating_add(Weight::from_parts(12_579_429, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2600).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn hrmp_cancel_open_request(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1026 + c * (13 ±0)`
-		//  Estimated: `4295 + c * (15 ±0)`
-		// Minimum execution time: 22_301_000 picoseconds.
-		Weight::from_parts(26_131_473, 0)
-			.saturating_add(Weight::from_parts(0, 4295))
-			// Standard Error: 830
-			.saturating_add(Weight::from_parts(49_448, 0).saturating_mul(c.into()))
+		//  Measured:  `1059 + c * (13 ±0)`
+		//  Estimated: `4328 + c * (15 ±0)`
+		// Minimum execution time: 17_228_000 picoseconds.
+		Weight::from_parts(27_236_563, 0)
+			.saturating_add(Weight::from_parts(0, 4328))
+			// Standard Error: 2_419
+			.saturating_add(Weight::from_parts(102_107, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn clean_open_channel_requests(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243 + c * (63 ±0)`
-		//  Estimated: `1722 + c * (2538 ±0)`
-		// Minimum execution time: 5_234_000 picoseconds.
-		Weight::from_parts(7_350_270, 0)
-			.saturating_add(Weight::from_parts(0, 1722))
-			// Standard Error: 3_105
-			.saturating_add(Weight::from_parts(2_981_935, 0).saturating_mul(c.into()))
+		//  Measured:  `276 + c * (63 ±0)`
+		//  Estimated: `1755 + c * (2538 ±0)`
+		// Minimum execution time: 3_549_000 picoseconds.
+		Weight::from_parts(5_799_542, 0)
+			.saturating_add(Weight::from_parts(0, 1755))
+			// Standard Error: 3_025
+			.saturating_add(Weight::from_parts(3_173_294, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2538).saturating_mul(c.into()))
 	}
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	fn force_open_hrmp_channel(_c: u32, ) -> Weight {
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `c` is `[0, 1]`.
+	fn force_open_hrmp_channel(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `704`
-		//  Estimated: `6644`
-		// Minimum execution time: 55_611_000 picoseconds.
-		Weight::from_parts(56_488_000, 0)
-			.saturating_add(Weight::from_parts(0, 6644))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `488 + c * (235 ±0)`
+		//  Estimated: `6428 + c * (235 ±0)`
+		// Minimum execution time: 48_392_000 picoseconds.
+		Weight::from_parts(50_509_977, 0)
+			.saturating_add(Weight::from_parts(0, 6428))
+			// Standard Error: 133_658
+			.saturating_add(Weight::from_parts(10_215_322, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
+			.saturating_add(Weight::from_parts(0, 235).saturating_mul(c.into()))
 	}
 	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
 	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -311,11 +304,11 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn establish_system_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
-		//  Estimated: `6357`
-		// Minimum execution time: 629_674_000 picoseconds.
-		Weight::from_parts(640_174_000, 0)
-			.saturating_add(Weight::from_parts(0, 6357))
+		//  Measured:  `488`
+		//  Estimated: `6428`
+		// Minimum execution time: 48_465_000 picoseconds.
+		Weight::from_parts(50_433_000, 0)
+			.saturating_add(Weight::from_parts(0, 6428))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -323,22 +316,42 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn poke_channel_deposits() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `263`
-		//  Estimated: `3728`
-		// Minimum execution time: 173_371_000 picoseconds.
-		Weight::from_parts(175_860_000, 0)
-			.saturating_add(Weight::from_parts(0, 3728))
+		//  Measured:  `296`
+		//  Estimated: `3761`
+		// Minimum execution time: 11_835_000 picoseconds.
+		Weight::from_parts(12_380_000, 0)
+			.saturating_add(Weight::from_parts(0, 3761))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Paras::ParaLifecycles` (r:2 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn establish_channel_with_system() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
-		//  Estimated: `6357`
-		// Minimum execution time: 629_674_000 picoseconds.
-		Weight::from_parts(640_174_000, 0)
-			.saturating_add(Weight::from_parts(0, 6357))
-			.saturating_add(T::DbWeight::get().reads(12))
-			.saturating_add(T::DbWeight::get().writes(8))
+		//  Measured:  `488`
+		//  Estimated: `6428`
+		// Minimum execution time: 79_633_000 picoseconds.
+		Weight::from_parts(80_846_000, 0)
+			.saturating_add(Weight::from_parts(0, 6428))
+			.saturating_add(T::DbWeight::get().reads(19))
+			.saturating_add(T::DbWeight::get().writes(11))
 	}
 }
diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs
index 87becf73cb745af81ad84312a493cef5a028c698..b56e2f52f5f6bc0d6d4d4dd79a538a146634166a 100644
--- a/polkadot/runtime/test-runtime/src/lib.rs
+++ b/polkadot/runtime/test-runtime/src/lib.rs
@@ -29,7 +29,9 @@ use sp_std::{
 
 use polkadot_runtime_parachains::{
 	assigner_parachains as parachains_assigner_parachains,
-	configuration as parachains_configuration, disputes as parachains_disputes,
+	configuration as parachains_configuration,
+	configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio,
+	disputes as parachains_disputes,
 	disputes::slashing as parachains_slashing,
 	dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion,
 	initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras,
@@ -78,7 +80,7 @@ use sp_runtime::{
 		SaturatedConversion, StaticLookup, Verify,
 	},
 	transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity},
-	ApplyExtrinsicResult, FixedU128, KeyTypeId, Perbill,
+	ApplyExtrinsicResult, FixedU128, KeyTypeId, Perbill, Percent,
 };
 use sp_staking::SessionIndex;
 #[cfg(any(feature = "std", test))]
@@ -557,7 +559,7 @@ impl parachains_dmp::Config for Runtime {}
 
 parameter_types! {
 	pub const FirstMessageFactorPercent: u64 = 100;
-	pub const DefaultChannelSizeAndCapacityWithSystem: (u32, u32) = (51200, 500);
+	pub const HrmpChannelSizeAndCapacityWithSystemRatio: Percent = Percent::from_percent(100);
 }
 
 impl parachains_hrmp::Config for Runtime {
@@ -565,7 +567,10 @@ impl parachains_hrmp::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type ChannelManager = frame_system::EnsureRoot<AccountId>;
 	type Currency = Balances;
-	type DefaultChannelSizeAndCapacityWithSystem = DefaultChannelSizeAndCapacityWithSystem;
+	type DefaultChannelSizeAndCapacityWithSystem = ActiveConfigHrmpChannelSizeAndCapacityRatio<
+		Runtime,
+		HrmpChannelSizeAndCapacityWithSystemRatio,
+	>;
 	type WeightInfo = parachains_hrmp::TestWeightInfo;
 }
 
diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index 7125f5d34c40860ccced972d47530582ccd3d289..f51233cabf06436062aea92ed76db6ef35cd5f95 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/runtime/westend/src/lib.rs
@@ -68,6 +68,7 @@ use runtime_common::{
 use runtime_parachains::{
 	assigner_coretime as parachains_assigner_coretime,
 	assigner_on_demand as parachains_assigner_on_demand, configuration as parachains_configuration,
+	configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio,
 	coretime, disputes as parachains_disputes,
 	disputes::slashing as parachains_slashing,
 	dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion,
@@ -1163,7 +1164,7 @@ impl pallet_message_queue::Config for Runtime {
 impl parachains_dmp::Config for Runtime {}
 
 parameter_types! {
-	pub const DefaultChannelSizeAndCapacityWithSystem: (u32, u32) = (4096, 4);
+	pub const HrmpChannelSizeAndCapacityWithSystemRatio: Percent = Percent::from_percent(100);
 }
 
 impl parachains_hrmp::Config for Runtime {
@@ -1171,7 +1172,10 @@ impl parachains_hrmp::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type ChannelManager = EnsureRoot<AccountId>;
 	type Currency = Balances;
-	type DefaultChannelSizeAndCapacityWithSystem = DefaultChannelSizeAndCapacityWithSystem;
+	type DefaultChannelSizeAndCapacityWithSystem = ActiveConfigHrmpChannelSizeAndCapacityRatio<
+		Runtime,
+		HrmpChannelSizeAndCapacityWithSystemRatio,
+	>;
 	type WeightInfo = weights::runtime_parachains_hrmp::WeightInfo<Self>;
 }
 
diff --git a/polkadot/runtime/westend/src/weights/runtime_parachains_hrmp.rs b/polkadot/runtime/westend/src/weights/runtime_parachains_hrmp.rs
index 3d2ab827b8fd125b74a2c892803038557998b8be..529bdf7610550441a53810c0733b94be436f50ea 100644
--- a/polkadot/runtime/westend/src/weights/runtime_parachains_hrmp.rs
+++ b/polkadot/runtime/westend/src/weights/runtime_parachains_hrmp.rs
@@ -16,28 +16,26 @@
 
 //! Autogenerated weights for `runtime_parachains::hrmp`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-04-30, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-unxyhko3-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// ./target/production/polkadot
+// target/production/polkadot
 // benchmark
 // pallet
-// --chain=westend-dev
 // --steps=50
 // --repeat=20
-// --no-storage-info
-// --no-median-slopes
-// --no-min-squares
-// --pallet=runtime_parachains::hrmp
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/westend/src/weights/runtime_parachains_hrmp.rs
+// --heap-pages=4096
+// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
+// --pallet=runtime_parachains::hrmp
+// --chain=westend-dev
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/westend/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,99 +48,97 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::hrmp`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInfo<T> {
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_init_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `307`
-		//  Estimated: `6247`
-		// Minimum execution time: 35_676_000 picoseconds.
-		Weight::from_parts(36_608_000, 0)
-			.saturating_add(Weight::from_parts(0, 6247))
-			.saturating_add(T::DbWeight::get().reads(9))
+		//  Measured:  `455`
+		//  Estimated: `3920`
+		// Minimum execution time: 32_195_000 picoseconds.
+		Weight::from_parts(33_340_000, 0)
+			.saturating_add(Weight::from_parts(0, 3920))
+			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_accept_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `421`
-		//  Estimated: `3886`
-		// Minimum execution time: 32_773_000 picoseconds.
-		Weight::from_parts(33_563_000, 0)
-			.saturating_add(Weight::from_parts(0, 3886))
-			.saturating_add(T::DbWeight::get().reads(6))
+		//  Measured:  `445`
+		//  Estimated: `3910`
+		// Minimum execution time: 28_644_000 picoseconds.
+		Weight::from_parts(29_581_000, 0)
+			.saturating_add(Weight::from_parts(0, 3910))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_close_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `238`
-		//  Estimated: `3703`
-		// Minimum execution time: 28_134_000 picoseconds.
-		Weight::from_parts(29_236_000, 0)
-			.saturating_add(Weight::from_parts(0, 3703))
+		//  Measured:  `558`
+		//  Estimated: `4023`
+		// Minimum execution time: 31_824_000 picoseconds.
+		Weight::from_parts(33_207_000, 0)
+			.saturating_add(Weight::from_parts(0, 4023))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:254 w:254)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:254)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:254 w:254)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:254)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 127]`.
 	/// The range of component `e` is `[0, 127]`.
 	fn force_clean_hrmp(i: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `158 + e * (100 ±0) + i * (100 ±0)`
-		//  Estimated: `3620 + e * (2575 ±0) + i * (2575 ±0)`
-		// Minimum execution time: 1_217_145_000 picoseconds.
-		Weight::from_parts(1_251_187_000, 0)
-			.saturating_add(Weight::from_parts(0, 3620))
-			// Standard Error: 118_884
-			.saturating_add(Weight::from_parts(4_002_678, 0).saturating_mul(i.into()))
-			// Standard Error: 118_884
-			.saturating_add(Weight::from_parts(3_641_596, 0).saturating_mul(e.into()))
+		//  Measured:  `264 + e * (100 ±0) + i * (100 ±0)`
+		//  Estimated: `3726 + e * (2575 ±0) + i * (2575 ±0)`
+		// Minimum execution time: 1_213_331_000 picoseconds.
+		Weight::from_parts(1_217_120_000, 0)
+			.saturating_add(Weight::from_parts(0, 3726))
+			// Standard Error: 108_190
+			.saturating_add(Weight::from_parts(3_485_701, 0).saturating_mul(i.into()))
+			// Standard Error: 108_190
+			.saturating_add(Weight::from_parts(3_564_287, 0).saturating_mul(e.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into())))
@@ -152,135 +148,139 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(e.into()))
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(i.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:256 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:256 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_open(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `386 + c * (136 ±0)`
-		//  Estimated: `1841 + c * (5086 ±0)`
-		// Minimum execution time: 6_277_000 picoseconds.
-		Weight::from_parts(6_357_000, 0)
-			.saturating_add(Weight::from_parts(0, 1841))
-			// Standard Error: 41_189
-			.saturating_add(Weight::from_parts(22_159_709, 0).saturating_mul(c.into()))
+		//  Measured:  `492 + c * (136 ±0)`
+		//  Estimated: `1947 + c * (5086 ±0)`
+		// Minimum execution time: 6_040_000 picoseconds.
+		Weight::from_parts(5_644_307, 0)
+			.saturating_add(Weight::from_parts(0, 1947))
+			// Standard Error: 12_852
+			.saturating_add(Weight::from_parts(21_031_626, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 5086).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_close(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `229 + c * (124 ±0)`
-		//  Estimated: `1689 + c * (2600 ±0)`
-		// Minimum execution time: 5_070_000 picoseconds.
-		Weight::from_parts(5_225_000, 0)
-			.saturating_add(Weight::from_parts(0, 1689))
-			// Standard Error: 24_173
-			.saturating_add(Weight::from_parts(13_645_307, 0).saturating_mul(c.into()))
+		//  Measured:  `335 + c * (124 ±0)`
+		//  Estimated: `1795 + c * (2600 ±0)`
+		// Minimum execution time: 4_950_000 picoseconds.
+		Weight::from_parts(5_215_558, 0)
+			.saturating_add(Weight::from_parts(0, 1795))
+			// Standard Error: 9_231
+			.saturating_add(Weight::from_parts(12_770_147, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2600).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn hrmp_cancel_open_request(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `920 + c * (13 ±0)`
-		//  Estimated: `4189 + c * (15 ±0)`
-		// Minimum execution time: 20_449_000 picoseconds.
-		Weight::from_parts(30_861_799, 0)
-			.saturating_add(Weight::from_parts(0, 4189))
-			// Standard Error: 6_642
-			.saturating_add(Weight::from_parts(236_293, 0).saturating_mul(c.into()))
+		//  Measured:  `1026 + c * (13 ±0)`
+		//  Estimated: `4295 + c * (15 ±0)`
+		// Minimum execution time: 17_550_000 picoseconds.
+		Weight::from_parts(25_522_933, 0)
+			.saturating_add(Weight::from_parts(0, 4295))
+			// Standard Error: 2_332
+			.saturating_add(Weight::from_parts(121_128, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn clean_open_channel_requests(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `137 + c * (63 ±0)`
-		//  Estimated: `1616 + c * (2538 ±0)`
-		// Minimum execution time: 3_911_000 picoseconds.
-		Weight::from_parts(5_219_837, 0)
-			.saturating_add(Weight::from_parts(0, 1616))
-			// Standard Error: 10_219
-			.saturating_add(Weight::from_parts(3_647_782, 0).saturating_mul(c.into()))
+		//  Measured:  `243 + c * (63 ±0)`
+		//  Estimated: `1722 + c * (2538 ±0)`
+		// Minimum execution time: 3_782_000 picoseconds.
+		Weight::from_parts(5_263_610, 0)
+			.saturating_add(Weight::from_parts(0, 1722))
+			// Standard Error: 3_152
+			.saturating_add(Weight::from_parts(3_309_777, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2538).saturating_mul(c.into()))
 	}
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	fn force_open_hrmp_channel(_c: u32, ) -> Weight {
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `c` is `[0, 1]`.
+	fn force_open_hrmp_channel(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `307`
-		//  Estimated: `6247`
-		// Minimum execution time: 50_870_000 picoseconds.
-		Weight::from_parts(53_335_000, 0)
-			.saturating_add(Weight::from_parts(0, 6247))
-			.saturating_add(T::DbWeight::get().reads(13))
+		//  Measured:  `455 + c * (235 ±0)`
+		//  Estimated: `6395 + c * (235 ±0)`
+		// Minimum execution time: 46_445_000 picoseconds.
+		Weight::from_parts(48_376_448, 0)
+			.saturating_add(Weight::from_parts(0, 6395))
+			// Standard Error: 130_148
+			.saturating_add(Weight::from_parts(13_606_551, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
+			.saturating_add(Weight::from_parts(0, 235).saturating_mul(c.into()))
 	}
 	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
 	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -304,11 +304,11 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn establish_system_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
-		//  Estimated: `6357`
-		// Minimum execution time: 629_674_000 picoseconds.
-		Weight::from_parts(640_174_000, 0)
-			.saturating_add(Weight::from_parts(0, 6357))
+		//  Measured:  `455`
+		//  Estimated: `6395`
+		// Minimum execution time: 46_563_000 picoseconds.
+		Weight::from_parts(48_015_000, 0)
+			.saturating_add(Weight::from_parts(0, 6395))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -318,20 +318,40 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `263`
 		//  Estimated: `3728`
-		// Minimum execution time: 173_371_000 picoseconds.
-		Weight::from_parts(175_860_000, 0)
+		// Minimum execution time: 12_252_000 picoseconds.
+		Weight::from_parts(12_550_000, 0)
 			.saturating_add(Weight::from_parts(0, 3728))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Paras::ParaLifecycles` (r:2 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:2 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:2 w:2)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn establish_channel_with_system() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
-		//  Estimated: `6357`
-		// Minimum execution time: 629_674_000 picoseconds.
-		Weight::from_parts(640_174_000, 0)
-			.saturating_add(Weight::from_parts(0, 6357))
-			.saturating_add(T::DbWeight::get().reads(12))
-			.saturating_add(T::DbWeight::get().writes(8))
+		//  Measured:  `455`
+		//  Estimated: `6395`
+		// Minimum execution time: 79_503_000 picoseconds.
+		Weight::from_parts(81_630_000, 0)
+			.saturating_add(Weight::from_parts(0, 6395))
+			.saturating_add(T::DbWeight::get().reads(19))
+			.saturating_add(T::DbWeight::get().writes(11))
 	}
 }