I THINK THE FOLLOWING NOTE WILL BE USEFUL FOR THIS TOPIC
802.1Q Configuration on the Router for Cisco IOS Versions Earlier than 12.1(3)T
As described earlier in this document, while configuring 802.1Q trunking it is very important to match the native VLAN across the link. In the Cisco IOS software versions earlier than 12.1(3)T, you cannot define the native VLAN explicitly, as the encapsulation dot1Q 1 native command under the sub-interface is not available. In the earlier Cisco IOS versions, it is important to configure the native VLAN-Interface not as a sub-interface, which is in our example VLAN1. If configured wrong, the router would expect a tag dot1q frame on VLAN1 and the switch is not expecting a tag on VLAN1. As a result, no traffic will pass between VLAN1 on the switch and the router. In these situations always put the configuration for the native VLAN under the main interface and on the trunk create subinterface for all other VLANS.