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 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
labroot@mantis-re0# commit and-quit
re0:
configuration check succeeds
re1:
commit complete
Exiting configuration mode
The mac-vrf table will be populated as expected:
Ethernet switching table : 2 entries, 2 learned
v316 00:10:69:00:03:16 D - ae0.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
MAC Learning is not happening with hierarchical-scheduler configured on an AE interface with an ACX running EVO.
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.