While implementing migration from an aggregate Ethernet (AE) interface to an XE(GE) interface as member link change, Junos reports failure of check-out. This occurs while committing a class of service (CoS) change from AE interface to its member link interface. This article describes the issue and suggests a two-phase commit sequence.
1. Initial Configuration:
user@re0-router# show class-of-service interfaces ae17 | display inheritance no-comments output-traffic-control-profile Qos-control-profile-test; <<<<< Base_line config [snipping...] user@re0-router# show interfaces ae17 aggregated-ether-options { minimum-links 1; lacp { active; } } unit 0 { family inet { address 192.168.1.1/30; } } user@re0-router# show interfaces xe-5/2/3 gigether-options { 802.3ad ae17; }
2. Remove member link from AE interface:
user@re0-router# load override remove-xe-interface.conf load complete [edit] user@re0-router# show interfaces xe-5/2/3 unit 0 { family inet { address 192.168.1.1/30; } } [edit] user@re0-router# show interfaces ae17 disable; [edit] user@re0-router# show class-of-service interfaces ae17 | display inheritance no-comments [edit] user@re0-router# show class-of-service interfaces xe-5/2/3 | display inheritance no-comments output-traffic-control-profile Qos-control-profile-test; <<<< Issue [snipping...]
3. Commit verification:
user@re0-router# commit check [edit class-of-service interfaces xe-5/2/3] 'output-traffic-control-profile' config not allowed on interface xe-5/2/3 error: configuration check-out failed
When a member-link (for example, xe-5/2/3) is removed from the AE bundle and CoS configuration is added to the interface (xe-5/2/3), the commit command fails:
The root cause is that cosd determines if the integrated field diagnostic (IFD) is a member of the AE bundle from the kernel information. When a member-link (for example, xe-5/2/3) is removed from the AE bundle and CoS configuration is added to the interface (xe-5/2/3) with the same commit command, then AE membership information is not updated until the commit command executes; at this point the commit fails.
The solution is to perform the commit in two phases.
- Remove the member-link (for example, xe-5/2/3) from the AE bundle and execute the commit.
- Add the CoS configuration to the interface (for example, xe-5/2/3) and execute the commit.