diff --git a/docker-sonic-vpp/conf/startup.conf.tmpl b/docker-sonic-vpp/conf/startup.conf.tmpl
index 9ba68c5..0e35460 100644
--- a/docker-sonic-vpp/conf/startup.conf.tmpl
+++ b/docker-sonic-vpp/conf/startup.conf.tmpl
@@ -301,5 +301,10 @@ plugins {
# Why not support sub interfaces
linux-cp {
- lcp-auto-subint
+ # lcp-auto-subint disabled so sairedis owns sub-port LCP pair creation
+ # explicitly (vpp_create_router_interface, SUB_PORT path: create_subif +
+ # configure_lcp_interface). With it enabled VPP would also auto-create the
+ # pair, colliding with the explicit one.
+ # lcp-auto-subint
+ lcp-sync
}
diff --git a/docker-syncd-vpp/conf/startup.conf.tmpl b/docker-syncd-vpp/conf/startup.conf.tmpl
index edb95f7..cf39b61 100644
--- a/docker-syncd-vpp/conf/startup.conf.tmpl
+++ b/docker-syncd-vpp/conf/startup.conf.tmpl
@@ -289,5 +289,10 @@ plugins {
# Why not support sub interfaces
linux-cp {
- lcp-auto-subint
+ # lcp-auto-subint disabled so sairedis owns sub-port LCP pair creation
+ # explicitly (vpp_create_router_interface, SUB_PORT path: create_subif +
+ # configure_lcp_interface). With it enabled VPP would also auto-create the
+ # pair, colliding with the explicit one.
+ # lcp-auto-subint
+ lcp-sync
}
diff --git a/docs/HLD/SONICVPP-HLD.md b/docs/HLD/SONICVPP-HLD.md
index c5eac98..45e67c2 100644
--- a/docs/HLD/SONICVPP-HLD.md
+++ b/docs/HLD/SONICVPP-HLD.md
@@ -360,7 +360,7 @@ The following table summarizes the flow from configuration to VPP/LCP API for di
| **Front-Panel** | Loaded from `config_db.json` | `\|c\|SAI_OBJECT_TYPE_HOSTIF:oid:0xd000000000080`
`SAI_HOSTIF_ATTR_NAME=Ethernet0`| *vpp intf pre-created using generated `startup.conf` | `lcp_itf_pair_add_del(vpp_ifname,EthernetX)`
>`itf-pair: [0] bobm0 tap4096 Ethernet0 10 type tap` | N/A |
| **PortChannel** | sudo config portchannel add PortChannel10
sudo config portchannel member add PortChannel10 Ethernet4 | `\|c\|SAI_OBJECT_TYPE_LAG:oid:0x2000000000095`
`\|c\|SAI_OBJECT_TYPE_LAG_MEMBER:oid:0x1b000000000096`
`SAI_LAG_MEMBER_ATTR_LAG_ID=oid:0x2000000000095` | `bond_create`
`bond_add_member` | `lcp_itf_pair_add_del(BondEthernetX,beX)`
>`itf-pair: [4] BondEthernet10 tap4099 be10 16 type tap` | `beX`
-->
`PortChannelX` |
| **Loopback** | sudo config interface ip add Loopback0 10.0.0.1/32 | `\|c\|SAI_OBJECT_TYPE_ROUTE_ENTRY:{"dest":"10.0.0.1/32","` | `create_loopback_instance`
`sw_interface_add_del_address` | `lcp_itf_pair_add_del(loopX,tap_LoopbackX)`
>`itf-pair: [2] loop0 tap4098 tap_Loopback0 13 type tap` | `tap_LoopbackX`
-->
`LoopbackX` |
-| **Subinterface** | sudo config subinterface add Ethernet0.10 10 | `\|c\|SAI_OBJECT_TYPE_ROUTER_INTERFACE:oid:0x6000000000094`
`SAI_ROUTER_INTERFACE_ATTR_TYPE=SAI_ROUTER_INTERFACE_TYPE_SUB_PORT` | `create_subif`| `lcp_itf_pair_add_del` automatically invoked with `lcp-auto-subinf` enabled
>`itf-pair: [3] bobm0.10 tap4096.10 Ethernet0.10 14 type tap` | N/A, shares parent tap |
+| **Subinterface** | sudo config subinterface add Ethernet0.10 10 | `\|c\|SAI_OBJECT_TYPE_ROUTER_INTERFACE:oid:0x6000000000094`
`SAI_ROUTER_INTERFACE_ATTR_TYPE=SAI_ROUTER_INTERFACE_TYPE_SUB_PORT` | `create_subif`| Explicit `configure_lcp_interface(bobmX.10, EthernetX.10)` from sairedis (with `lcp-auto-subint = disabled` in startup.conf)
>`itf-pair: [3] bobm0.10 tap4096.10 Ethernet0.10 14 type tap` | N/A, shares parent tap |