Network MTU Description States Possible Values of 1280-9000, But MTU can only be set up to 1500
Problem
- In the PCD UI, the MTU description indicates that acceptable values range from 1280 to 9000. However, when attempting to set the MTU value above 1500, an error message is displayed in the UI, indicating that the MTU is capped at 1500. This suggests that, despite the stated range, the maximum MTU value that can be configured in the current environment is limited to 1500.

Environment
- Private Cloud Director Virtualization - v2025.4 and Higher
- Private Cloud Director Kubernetes – v2025.4 and Higher
- Self-Hosted Private Cloud Director Virtualization - v2025.4 and Higher
- Self-Hosted Private Cloud Director Kubernetes - v2025.4 and Higher
- Component: Neutron
Cause
- Even though the MTU description states that acceptable values range from 1280 to 9000, the MTU is capped at 1500 as part of the default neutron configuration.
- This issue is tracked in the bug ( BUG ID: PCD-3215).
Workaround
PCD SaaS Users: Reach out to the Platform9 support team to update the MTU value on the management plane.
PCD Self-Hosted Users: Please apply the steps below to update the MTU value in the Neutron configuration.
NOTE: The steps provided below are for a temporary workaround. It will won't persist management plane upgrade.
1. Backup neutron-etc secret on management plane cluster.
$ kubectl get secret neutron-etc -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG> -o yaml > neutron-etc-secret.yaml
All the configuration file data in the neutron-etc secret is in base64 encoding. To see the actual data, decode it from base64.
2. Modify neutron-etc secret.
- Update
neutron.conf
and addglobal_physnet_mtu = 9000
under DEFAULT section.
$ kubectl get secret neutron-etc -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG> \
-o jsonpath="{.data.neutron\.conf}" | base64 -d | \
sed '/^\[DEFAULT\]/a global_physnet_mtu = 9000' | \
base64 | tr -d '\n' | \
xargs -I{} kubectl patch secret neutron-etc -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG> \
--type='json' -p='[{"op":"replace","path":"/data/neutron.conf","value":"{}"}]'
- Modify
ml2_conf.ini
and addpath_mtu = <between 1500 and 9000>
under ml2 section.
$ kubectl get secret neutron-etc -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG> \
-o jsonpath="{.data.ml2_conf\.ini}" | \
base64 -d | \
sed '/^\[ml2\]/a path_mtu = <MTU_VALUE>' | \
base64 | tr -d '\n' | \
xargs -I{} kubectl patch secret neutron-etc -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG> \
--type='json' -p='[{"op":"replace","path":"/data/ml2_conf.ini","value":"{}"}]'
3. Restart Neutron server.
$ kubectl rollout restart deployment neutron-server -n <REGION_NAMESPACE> --kubeconfig <KUBECONFIG>
Validation
- Update the MTU value of a network from the UI to a value greater than 1500.
The virtual networks have an associated offset, meaning that the maximum MTU value that a virtual network can support is determined by subtracting 50 from the path_mtu value.
Additional Information
- The ETA for fix of bug PCD-3215 is not yet determined. We will update this KB once it is confirmed.