For the situation that MPLS and eth-trunk running the MPLS traffic are both configured on S9300, S9300 ETH-TRUNK for MPLS packet load is imbalance for eth-trunk default configuration, all the traffic send through one link.
Configure enhancing templet on S9300, to identify MPLS packet, and to load balance according to different way, for instance, load balance according to the first layer label:
[Quidway] load-balance-profile abc
[Quidway-load-balance-profile-abc] mpls field top-label
[Quidway] interface Eth-Trunk 100
[Quidway-Eth-Trunk100] load-balance enhanced profile abc
Eth-trunk assign the traffic through hash arithmetic, hash with IP address for IP packet, hash with mac address for non IP address.
Mpls label is added at the front of IP packet head for mpls packet, so S9300 cannot identify this kind of packet and handle it as non IP packet, hash through mac.
Although their soure and destination IP are different for those mpls packet, their soure and destination mac are same(source mac is local layer 3 interface mac, destination mac is that of next-hop layer 3 interface). It hash all the traffic to one link according to the mac address.