Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a061c11
[202511] Increase default GCU timeout from 600s to 900s (#24501)
ZhaohuiS May 11, 2026
cfe8548
[action] [PR:23204] Fix PTF/DUT subnet mismatch when VLAN has multipl…
mssonicbld May 11, 2026
29482cb
[action] [PR:22509] Fix run_tests.sh "Prepare DUT failed, skip testin…
mssonicbld May 11, 2026
6b3400c
[action] [PR:24384] Fix daemon kill_and_start_status tests to use wai…
mssonicbld May 11, 2026
51b4b84
[action] [PR:24506] drop_counters: ignore transient syncd flex counte…
mssonicbld May 11, 2026
fe76f47
Fix test_crm_nexthop_group: split neighbor/route into two phases (#24…
Sourabh-Kumar7 May 11, 2026
fa0b3ea
[202511]Reapply PR23348 diff. broadcom-dnx check needs to support sin…
saravanan-nexthop May 11, 2026
cc3b071
[202511] Cherry-pick gnmi/gnxi testsuite & fixtures updates (#24392)
hdwhdw May 12, 2026
9203f21
[action] [PR:24378] [Arista] Increment QSFP-DD port names by 4 instea…
mssonicbld May 12, 2026
cb1057a
[action] [PR:24480] Fix get_port_indexes_with_flat_memory crash when …
mssonicbld May 12, 2026
1533573
[ARP][test_arp_update] Fix subnet mismatch between PTF and DUT VLAN I…
Janetxxx May 12, 2026
e52c479
[action] [PR:23504] Fix incorrectly passing namespace in FRR CLI shel…
mssonicbld May 12, 2026
a344776
[action] [PR:21665] Skip MMU dynamic threshold test on t2 topology (#…
mssonicbld May 12, 2026
2666172
[action] [PR:23544] Fix `test_everflow_fwd_recircle_port_queue_check`…
mssonicbld May 12, 2026
7438dba
[202511][cpu_shaper] Add gport API support for Broadcom TH5+ platform…
PriyanshTratiya May 13, 2026
5bb8b1f
[action] [PR:24413] Add config template files for t2 min topology (#2…
mssonicbld May 13, 2026
ec2d7c7
[action] [PR:24551] [platform_tests] Re-enable DAC skip for SFP in te…
mssonicbld May 13, 2026
7888f6b
[202511][BGP] Fix rollback failure in test_bgp_dual_asn by cleaning u…
PriyanshTratiya May 13, 2026
fa8091f
[action] [PR:21155] Support running acl tests without any IPv4 manage…
mssonicbld May 13, 2026
ea7e499
[cherry-pick](#21863)(#22801) (#24549)
rajkumar1-arista May 14, 2026
2638cac
Add wait_until for trim counters to avoid timing related failures (#2…
rgarofano-arista May 14, 2026
acc07dd
[action] [PR:24479] Add loganalyzer ignore patterns for Mellanox SDK …
mssonicbld May 14, 2026
fc42e65
[action] [PR:23803] [202511][sflow] Parse Agent ID strings into ipadd…
mssonicbld May 14, 2026
6ce184b
[action] [PR:24594] [utilities] Raise tcpdump_buffer_size default in …
mssonicbld May 14, 2026
0b817ed
[action] [PR:24600] [conditional_mark] xfail test_reload_configuratio…
mssonicbld May 14, 2026
2919c4c
[202511][Backport #23939] Remove BUFFER_SIZE override in test_dhcp_co…
Xichen96 May 14, 2026
142a6a9
[action] [PR:20946] Fix for parse_show_copp_configuration for multi-a…
mssonicbld May 14, 2026
a6392c1
[202511] Adjust Q200 buffer pool watermark margin (#24608) (#24616)
wsycqyz May 14, 2026
a14d472
202511: Fix fib/test_fib.py failures on v6-only (#24104)
wrideout-arista May 14, 2026
e7fb48e
[action] [PR:24273] [loganalyzer] Ignore ctrmgrd Docker/k8s version w…
mssonicbld May 15, 2026
cedefe3
[action] [PR:24385] Bump expected mgmt VRF table ID from 5000 to 6000…
mssonicbld May 16, 2026
2f4277f
[action] [PR:23241] Fix IPv6-only topology support in generic_patch B…
mssonicbld May 17, 2026
a0b9bc7
[action] [PR:24552] [memory_utilization] retry sudo monit status when…
mssonicbld May 18, 2026
29805a8
[action] [PR:24559] Increase config_reload_timeout for Nokia-7215 pla…
mssonicbld May 18, 2026
c358f07
[202511] [conditional_mark] Skip decap/test_decap.py on Arista-720DT …
Xichen96 May 18, 2026
58d253e
[202511] Add testbed-specific delay for acl and everflow (#24490) (#2…
tjchadaga May 18, 2026
c1b0df1
Merge branch '202511' into '202603'
lizhijianrd May 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions ansible/module_utils/port_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,13 +371,8 @@ def get_port_alias_to_name_map(hwsku, asic_name=None):
port_alias_to_name_map["Ethernet{}/{}".format(i, 1)] = sonic_name
elif hwsku in ["Arista-7280R4-32QF-32DF-64O",
"Arista-7280R4K-32QF-32DF-64O"]:
portNum = 0
for i in range(1, 65):
port_alias_to_name_map["Ethernet{}/{}".format(i, 1)] = "Ethernet%d" % portNum
if i > 16 and i < 49:
portNum += 4
else:
portNum += 8
port_alias_to_name_map["Ethernet{}/{}".format(i, 1)] = "Ethernet%d" % ((i - 1) * 4)
elif hwsku == "Arista-7800R3A-36DM2-C72" or\
hwsku == "Arista-7800R3A-36D-C72" or\
hwsku == "Arista-7800R3A-36P-C72" or\
Expand Down
1 change: 1 addition & 0 deletions ansible/roles/eos/templates/t2-single-node-min-core.j2
1 change: 1 addition & 0 deletions ansible/roles/eos/templates/t2-single-node-min-leaf.j2
55 changes: 37 additions & 18 deletions ansible/roles/test/files/ptftests/py3/hash_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from ptf.testutils import send_packet
from ptf.testutils import verify_packet_any_port
from ptf.testutils import simple_ipv4ip_packet
from ptf.testutils import simple_ipv6ip_packet
from ptf.testutils import simple_vxlan_packet
from ptf.testutils import simple_vxlanv6_packet
from ptf.testutils import simple_nvgre_packet
Expand Down Expand Up @@ -105,6 +106,7 @@ def setUp(self):
self.ipver = self.test_params.get('ipver', 'ipv4')
self.is_active_active_dualtor = self.test_params.get("is_active_active_dualtor", False)
self.topo_name = self.test_params.get('topo_name', '')
self.is_v6_topo = self.test_params.get('is_v6_topo', False)

self.topo_type = self.test_params.get('topo_type', '')
# set the base mac here to make it persistent across calls of check_ip_route
Expand Down Expand Up @@ -656,14 +658,19 @@ def create_packets_logs(
"""
@summary: return list of packets sending logs
"""
outer_ip_ver = "IPv6" if self.is_v6_topo else "IP"
next_header_key = "nh" if self.is_v6_topo else "proto"
outer_proto = ipinip_pkt[outer_ip_ver].nh if self.is_v6_topo else ipinip_pkt[outer_ip_ver].proto
logs = []
logs.append('Sent Ether(src={}, dst={})/IP(src={}, dst={}, proto={})/{}(src={}, '
logs.append('Sent Ether(src={}, dst={})/{}(src={}, dst={}, {}={})/{}(src={}, '
'dst={}, proto={})/TCP(sport={}, dport={} on port {})'
.format(ipinip_pkt.src,
ipinip_pkt.dst,
ipinip_pkt['IP'].src,
ipinip_pkt['IP'].dst,
ipinip_pkt['IP'].proto,
outer_ip_ver,
ipinip_pkt[outer_ip_ver].src,
ipinip_pkt[outer_ip_ver].dst,
next_header_key,
outer_proto,
version,
pkt[version].src,
pkt[version].dst,
Expand All @@ -674,13 +681,14 @@ def create_packets_logs(
return logs

def set_packet_parameter(self, pkt, exp_pkt, hash_key, ip_proto, version='IP'):
outer_ip_ver = "IPv6" if self.is_v6_topo else "IP"
if hash_key == 'ip-proto':
if version == 'IP':
pkt['IP'].payload.proto = ip_proto
exp_pkt['IP'].payload.proto = ip_proto
pkt[outer_ip_ver].payload.proto = ip_proto
exp_pkt[outer_ip_ver].payload.proto = ip_proto
else:
pkt['IP'].payload['IPv6'].nh = ip_proto
exp_pkt['IP'].payload['IPv6'].nh = ip_proto
pkt[outer_ip_ver].payload['IPv6'].nh = ip_proto
exp_pkt[outer_ip_ver].payload['IPv6'].nh = ip_proto

def create_pkt(
self, router_mac, src_mac, dst_mac, ip_src, ip_dst, sport, dport, version='IP',
Expand All @@ -699,7 +707,6 @@ def create_pkt(
tcp_sport=sport,
tcp_dport=dport,
ip_ttl=64)
func = simple_ipv4ip_packet
else:
pkt = simple_tcpv6_packet(pktlen=inner_pkt_len if vlan_id == 0 else inner_pkt_len + 4,
dl_vlan_enable=False if vlan_id == 0 else True,
Expand All @@ -710,15 +717,24 @@ def create_pkt(
tcp_sport=sport,
tcp_dport=dport,
ipv6_hlim=64)
func = simple_ipv4ip_packet
ipinip_pkt = func(
eth_dst=router_mac,
eth_src=src_mac,
ip_src=outer_src_ip,
ip_dst=outer_dst_ip,
inner_frame=pkt[version])
exp_pkt = ipinip_pkt.copy()
exp_pkt['IP'].ttl -= 1
if self.is_v6_topo:
ipinip_pkt = simple_ipv6ip_packet(
eth_dst=router_mac,
eth_src=src_mac,
ipv6_src=outer_src_ipv6,
ipv6_dst=outer_dst_ipv6,
inner_frame=pkt['IPv6'])
exp_pkt = ipinip_pkt.copy()
exp_pkt['IPv6'].hlim -= 1
else:
ipinip_pkt = simple_ipv4ip_packet(
eth_dst=router_mac,
eth_src=src_mac,
ip_src=outer_src_ip,
ip_dst=outer_dst_ip,
inner_frame=pkt[version])
exp_pkt = ipinip_pkt.copy()
exp_pkt['IP'].ttl -= 1
return ipinip_pkt, exp_pkt, pkt

def apply_mask_to_exp_pkt(self, masked_exp_pkt, version='IP'):
Expand Down Expand Up @@ -751,6 +767,9 @@ def check_hash(self, hash_key):
# The outer_src_ip and outer_dst_ip are fixed
outer_src_ip = '80.1.0.31'
outer_dst_ip = '80.1.0.32'
if self.is_v6_topo:
outer_src_ip = '80::31'
outer_dst_ip = '80::32'
src_port, exp_port_lists, next_hops = self.get_src_and_exp_ports(
outer_dst_ip)
if self.switch_type == "chassis-packet":
Expand Down
6 changes: 4 additions & 2 deletions ansible/roles/test/files/ptftests/py3/sflow_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
--socket-recv-size 16384
"""

import ipaddress
import ptf
import json
from ptf.base_tests import BaseTest
Expand Down Expand Up @@ -204,10 +205,11 @@ def analyze_counter_sample(self, data, collector, polling_int, port_sample):
counter_sample[intf] = 0
self.assertTrue(data['total_counter_count'] > 0,
"No counter packets are received in collector %s" % collector)
agent_id = ipaddress.ip_address(self.agent_id)
for i in range(1, data['total_counter_count']+1):
rcvd_agent_id = port_sample[collector]['CounterSample'][i]['agent_id']
rcvd_agent_id = ipaddress.ip_address(port_sample[collector]['CounterSample'][i]['agent_id'])
self.assertTrue(
rcvd_agent_id == self.agent_id,
rcvd_agent_id == agent_id,
"Agent id in Sampled packet is not expected . Expected : %s , received : %s"
% (self.agent_id, rcvd_agent_id))
elements = port_sample[collector]['CounterSample'][i]['elements']
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,18 @@ r, ".* ERR syncd#SDK: \[SAI_UTILS.ERR\] .\/src\/mlnx_sai_utils.c.*- get_dispatch
r, ".* ERR syncd#SDK: \[SAI_UTILS.ERR\] .\/src\/mlnx_sai_utils.c.*- get_dispatch_attribs_handler: Failed Get #\d+, BROADCAST_FLOOD_GROUP, key:BRIDGE \[OID:.*Type:.*sx_bridge_id.*"
r, ".* ERR syncd#SDK: \[SAI_UTILS.ERR\].*get_dispatch_attribs_handler:.*(INGRESS_SAMPLE_MIRROR_SESSION|EGRESS_SAMPLE_MIRROR_SESSION).*"

# https://github.com/sonic-net/sonic-buildimage/issues/27327
# Mellanox SDK new log format (with client_pid prefix) - FEC_ALIGNMENT_LOCK polling on ports without FEC support
# and sai_get_attributes failures in the new format
r, ".* ERR syncd#SDK: \[SAI_UTILS.ERR\] client_pid=\d+, .\/src\/mlnx_sai_utils.c\[\d+\]- get_dispatch_attribs_handler: Failed Get #\d+, FEC_ALIGNMENT_LOCK, key:PORT.*"
r, ".* ERR syncd#SDK: \[SAI_UTILS.ERR\] client_pid=\d+, .\/src\/mlnx_sai_utils.c\[\d+\]- sai_get_attributes: Failed to get attribute.*"

# Mellanox SAI_PORT FEC alignment lock not supported on pre-SPC4 platforms (SN2700, SN4600C, SN4700)
r, ".* ERR syncd#SDK: \[SAI_PORT.ERR\].*mlnx_sai_port.c\[\d+\]- mlnx_port_state_get: FEC alignment lock only supported on SPC4\+.*"

# Orchagent PORT_PHY_SERDES_ATTR counter map errors for ports without serdes objects
r, ".* ERR swss\d*#orchagent: :- clearPortPhySerdesAttrCounterMap: PORT_PHY_SERDES_ATTR: Port .* has no serdes object"

# https://github.com/sonic-net/sonic-mgmt/issues/10384
r, ".*kdump-tools\[[0-9]+\]: no crashkernel= parameter in the kernel cmdline.*"

Expand Down Expand Up @@ -484,3 +496,7 @@ r, ".* ERR syncd\d*#syncd: :- collectData: Failed to get port attr for VID 0x[0-
r, ".* ERR auditd.*: queue to plugins is full - dropping event"
r, ".* ERR auditd.*: message repeated .*: \[ queue to plugins is full - dropping event\]"
r, ".* ERR auditd.*: auditd queue full reporting limit reached - ending dropped event notifications"

# ctrmgrd k8s join warnings (old k8s version incompatibility with Docker 28.x)
r, ".* ERR ctrmgrd\.py: Refer file .* for troubleshooting tips.*"
r, ".* ERR ctrmgrd\.py:.*\[WARNING SystemVerification\]:.*Docker version is not on the list of validated versions.*"
Loading