Description

An ACX7509 is seeing an issue with MAC Learning. The ACX is configured for EVPN with a mac-vrf:

 

set chassis aggregated-devices ethernet device-count 10

set interfaces et-0/0/0 hierarchical-scheduler

set interfaces et-0/0/0 flexible-vlan-tagging

set interfaces et-0/0/0 speed 10g

set interfaces et-0/0/0 mtu 9216

set interfaces et-0/0/0 encapsulation flexible-ethernet-services

set interfaces et-0/0/0 unit 316 encapsulation vlan-bridge

set interfaces et-0/0/0 unit 316 vlan-id 316

set interfaces et-0/0/1 ether-options 802.3ad ae0

set interfaces ae0 hierarchical-scheduler

set interfaces ae0 flexible-vlan-tagging

set interfaces ae0 mtu 9216

set interfaces ae0 encapsulation flexible-ethernet-services

set interfaces ae0 unit 316 encapsulation vlan-bridge

set interfaces ae0 unit 316 vlan-id 316

set interfaces irb unit 316 family inet address 10.0.116.100/24

set interfaces lo0 unit 0 family inet address 192.168.4.1/32

set interfaces lo0 unit 0 family mpls

set interfaces lo0 unit 1 family inet address 200.0.100.1/24

set class-of-service classifiers ieee-802.1 802-1P forwarding-class BE loss-priority high code-points BE

set class-of-service classifiers ieee-802.1 802-1P forwarding-class INTERNET loss-priority low code-points INTERNET

set class-of-service classifiers ieee-802.1 802-1P forwarding-class NETWORK-CONTROL loss-priority high code-points NETWORK-CONTROL1

set class-of-service classifiers ieee-802.1 802-1P forwarding-class NETWORK-CONTROL loss-priority low code-points NETWORK-CONTROL2

set class-of-service classifiers ieee-802.1 802-1P forwarding-class TV_OTT loss-priority low code-points TV_OTT

set class-of-service classifiers ieee-802.1 802-1P forwarding-class VOZ loss-priority high code-points VOZ

set class-of-service code-point-aliases ieee-802.1 BE 001

set class-of-service code-point-aliases ieee-802.1 INTERNET 000

set class-of-service code-point-aliases ieee-802.1 NETWORK-CONTROL1 110

set class-of-service code-point-aliases ieee-802.1 NETWORK-CONTROL2 111

set class-of-service code-point-aliases ieee-802.1 TV_OTT 100

set class-of-service code-point-aliases ieee-802.1 VOZ 101

set class-of-service drop-profiles LOW fill-level 80 drop-probability 0

set class-of-service drop-profiles LOW fill-level 90 drop-probability 100

set class-of-service forwarding-classes queue 0 INTERNET

set class-of-service forwarding-classes queue 1 VOZ

set class-of-service forwarding-classes queue 2 TV_OTT

set class-of-service forwarding-classes queue 3 NETWORK-CONTROL

set class-of-service forwarding-classes queue 4 BE

set class-of-service traffic-control-profiles tc1 scheduler-map sm1

set class-of-service traffic-control-profiles tc1 shaping-rate 100m

set class-of-service interfaces et-0/0/0 unit 316 classifiers ieee-802.1 802-1P

set class-of-service interfaces ae0 unit 316 output-traffic-control-profile VNO01

set class-of-service scheduler-maps sm1 forwarding-class BE scheduler BE

set class-of-service scheduler-maps sm1 forwarding-class INTERNET scheduler INTERNET

set class-of-service scheduler-maps sm1 forwarding-class TV_OTT scheduler TV_OTT

set class-of-service scheduler-maps sm1 forwarding-class VOZ scheduler VOZ

set class-of-service schedulers BE shaping-rate percent 1

set class-of-service schedulers BE buffer-size percent 1

set class-of-service schedulers BE priority low

set class-of-service schedulers INTERNET transmit-rate remainder

set class-of-service schedulers INTERNET buffer-size remainder

set class-of-service schedulers INTERNET priority low

set class-of-service schedulers INTERNET drop-profile-map loss-priority high protocol any drop-profile LOW

set class-of-service schedulers TV_OTT shaping-rate percent 10

set class-of-service schedulers TV_OTT buffer-size percent 10

set class-of-service schedulers TV_OTT priority high

set class-of-service schedulers VOZ transmit-rate remainder

set class-of-service schedulers VOZ buffer-size percent 10

set class-of-service schedulers VOZ priority low

set routing-instances L3-VPN instance-type vrf

set routing-instances L3-VPN interface lo0.1

set routing-instances L3-VPN route-distinguisher 65001:100

set routing-instances L3-VPN vrf-target import target:65001:1000

set routing-instances L3-VPN vrf-target export target:65001:1000

set routing-instances L2_QoS instance-type mac-vrf

set routing-instances L2_QoS protocols evpn encapsulation mpls

set routing-instances L2_QoS protocols evpn no-control-word

set routing-instances L2_QoS service-type vlan-aware

set routing-instances L2_QoS route-distinguisher 192.168.0.1:1000

set routing-instances L2_QoS vrf-target target:65000:1000

set routing-instances L2_QoS vlans v316 vlan-id 316

set routing-instances L2_QoS vlans v316 interface et-0/0/0.316

set routing-instances L2_QoS vlans v316 interface ae0.316

 

If a given VLAN is chosen, e.g. vlan316:

 

set routing-instances L2_QoS vlans v316 vlan-id 316

set routing-instances L2_QoS vlans v316 interface et-0/0/0.316

set routing-instances L2_QoS vlans v316 interface ae0.316

set routing-instances L2_QoS vlans v316 l3-interface irb.316

 

Traffic sent into et-0/0/0 will show a MAC is learned:

 

labroot@mantis-re0> show mac-vrf forwarding mac-table instance L2_QoS 

 

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC

      SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC

      GBP - group based policy, B - Blocked MAC)

 

 

Ethernet switching table : 1 entries, 1 learned

Routing instance : L2_QoS

  Vlan        MAC         MAC     Age  GBP   Logical        NH    MAC    RTR

  name        address       flags       Tag   interface       Index   property  ID

  v316        00:10:94:00:03:16  D       -      et-0/0/0.316      0          0  


 

But, traffic coming into AE does not resolve any L1 MAC:

 

labroot@mantis-re0> show interfaces ae0 | match rate 

 Input rate   : 61033184 bps (9932 pps)

 Output rate  : 0 bps (0 pps)

 

However, if hierarchical-scheduler is removed from ae0:

 

labroot@mantis-re0> configure 

Entering configuration mode

 

{master}[edit]

labroot@mantis-re0# deactivate interfaces ae0 hierarchical-scheduler 

 

{master}[edit]

labroot@mantis-re0# commit and-quit 

re0: 

configuration check succeeds

re1: 

commit complete

re0: 

commit complete

Exiting configuration mode

 

The mac-vrf table will be populated as expected:

 

labroot@mantis-re0> show mac-vrf forwarding mac-table instance L2_QoS   

 

MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC

      SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC

      GBP - group based policy, B - Blocked MAC)

 

 

Ethernet switching table : 2 entries, 2 learned

Routing instance : L2_QoS

  Vlan        MAC         MAC     Age  GBP   Logical        NH    MAC    RTR

  name        address       flags       Tag   interface       Index   property  ID

  v316        00:10:69:00:03:16  D       -      ae0.316        0          0    

  v316        00:10:94:00:03:16  D       -      et-0/0/0.316      0          0 

 

L2 logs show the learning happen:

 

labroot@mantis-re0> show log l2learn.log | match 00:10:69  

Jun 14 13:26:26.318619000 l2ald_mac_msg_handler:1643 From L2ALM [(1) ADD] msgin BD: 2 MAC Address: 00:10:69:00:03:16

Jun 14 13:26:26.318625000 do_mac_process:6776 Processing [mac 00:10:69:00:03:16(epoch 33 stp 11) bd 2 vlan 0]

Jun 14 13:26:26.318633000 l2ald_mac_process_get_mac:3510 MAC 00:10:69:00:03:16 Found:FALSE bd_id:2 ifl:1027 OP:1

Jun 14 13:26:26.318695000 l2ald_add_mac_to_global_db:415 Added MAC 00:10:69:00:03:16 from ifl 0 in global hash table

Jun 14 13:26:26.318712000 libl2_add_mac_to_ifd_list:126 Added MAC 00:10:69:00:03:16 in ifd list for ae0

Jun 14 13:26:26.318727000 libl2_ifl_rvlan_add_mac_to_bd_info:1450 Mac address 00:10:69:00:03:16 add for lvlan membership 0 No such learn vlan info present.. Adding it

Jun 14 13:26:26.318737000 libl2_add_mac_to_ifl_list:282 Added MAC 00:10:69:00:03:16 in ifl list for le ifl:(ae0.316:0x562750489c20)

Jun 14 13:26:26.318781000 libl2_add_mac_to_learn_vlan:237 Added MAC 00:10:69:00:03:16 in learn vlan list for bd v316+316.0

Jun 14 13:26:26.318797000 l2ald_gbptagdb_poulate_gbp_tag_value:136 MAC:00:10:69:00:03:16 Reason = 0x2, Flags = 0x0 Entry gbp tag type: 0 value: 0 key.gbp tag type: 0 value: 0 IsLocalLearn: 1

Jun 14 13:26:26.318806000 l2ald_gbptagdb_poulate_gbp_tag_value:155 MAC:00:10:69:00:03:16 derived gbp tag type: 0 value: 0

Jun 14 13:26:26.362330000 l2ald_mlrn_mac_add_event_handler:3613 add the mac entry 00:10:69:00:03:16 to the kernel msgout rt flags 0x0 rt ext flags 0x0 eflags 0x2001f extflags 0x0 mg_id 0 bgp seq no: 0gbp tag value 0x0

Jun 14 13:26:26.362344000 l2ald_mlrn_mac_add_event_handler:3785 frr-mac:: 00:10:69:00:03:16 ifl ae0.316(1027), prifidx:1027, nhifidx:1027 nh:9111(type:2)

Jun 14 13:26:26.362402000 l2ald_telemetry_handle_oc_ni_mac_address_change:1552 Posted MAC change for mac <00:10:69:00:03:16>

Jun 14 13:26:26.362421000 l2ald_telemetry_handle_mac_address_change:1510 Posted MAC change for mac <00:10:69:00:03:16>

Jun 14 13:26:26.362433000 l2ald_ctrl_mac_post_add_rts_op:3015 Resync'ing MAC+IP entries for bd v316+316 mac 00:10:69:00:03:16 op:1

Jun 14 13:26:26.362446000 l2ald_server_enqueue_dpmac_to_client:4904 Setting advt_to_remote for first mac route add: 00:10:69:00:03:16

Jun 14 13:26:26.362451000 l2ald_get_oam_entry:171 FU: node not found for key (2, 00:10:69:00:03:16)

Jun 14 13:26:26.362455000 l2ald_common_enqueue_to_client:4535 Entered to enq DataMAC:00:10:69:00:03:16 mac_ip 0x30 ip - cmd:1 (MAC ROUTE ADD) sub_cmd:1

Jun 14 13:26:26.362463000 l2ald_get_oam_entry:171 FU: node not found for key (2, 00:10:69:00:03:16)

Jun 14 13:26:26.362474000 l2ald_rpdf_init_dpcpmac:4218 Preparing cmd:MAC ROUTE ADD[1] sub_cmd:1 for MAC:00:10:69:00:03:16 ip address: NHID:0 RTRID:0 ifln:ae0.316 ifld:1027 rtt:55 flags:0x0000000100000002 ts:0x666ca772 bdidgen:0x0000000000000000 vni:16777215 rvtep:0.0.0.0 ESI:00:00:00:00:00:00:00:00:00:00 gbp tag value:0

Jun 14 13:26:26.362491000 l2ald_rpdf_send_msg_to_peer:4439 MSG sent to RPD msgout op 0 opcode 1 (MAC ROUTE ADD) MAC 00:10:69:00:03:16 ipaddr vlan id 316 rtt id 55 ifl index 1027 vni 0 nh id 0 vtep ipaddr 0.0.0.0 bd id 0 isid 0 flags 0x0000000100000002 ifl name ae0.316, ts 0x666ca772 esi 00:00:00:00:00:00:00:00:00:00 gbp tag value 0

Jun 14 13:26:26.362499000 l2ald_rpdf_msg_mac_enqueue:7185 Prepare MAC msg to RPD - MAC 00:10:69:00:03:16 ipaddr 0 encap type 0 vtep ipaddr 0 bd id 0 MAC_OP:1 gbp tag: 0

Jun 14 13:26:26.362522000 l2ald_ctrl_mac_post_add_rts_op:3196 ADD enqueued to RPD DPMAC:00:10:69:00:03:16 bd_id:2 eflags:0x2101f

Jun 14 13:26:26.362526000 l2ald_evpn_handle_mac_add:672 Entered to handle evpn mac add 00:10:69:00:03:16 bd:2

Jun 14 13:26:26.362531000 l2ald_evpn_handle_mac_add:717 Mac entry 00:10:69:00:03:16 not found in pending_mac_tree

 

Symptoms

MAC Learning is not happening with hierarchical-scheduler configured on an AE interface with an ACX running EVO.

Solution

Support for hierarchical-scheduler on ACX7509 running EVO for AE interfaces is in 24.2R1:

 

https://www.juniper.net/documentation/us/en/software/junos/release-notes/24.2/junos-evo-release-notes-24.2r1/junos-evo-release-notes-24.2r1.pdf

 

From the Release Notes:

 

Support for HCoS on aggregated Ethernet interface (ACX7024, ACX7024X, ACX7100, ACX7332,

ACX7348, and ACX7509) in Junos OS Evolved Release 24.2R1, you can use hierarchical

class-of-service (HCoS)on aggregated Ethernet (ae-) interfaces on ACX Series routers.

Modification History

2024-07-31 : Article Created