Coder Social home page Coder Social logo

sonic-net / sonic-mgmt Goto Github PK

View Code? Open in Web Editor NEW
172.0 172.0 676.0 62.08 MB

Configuration management examples for SONiC

License: Other

Shell 1.79% Python 94.11% Lua 0.04% Dockerfile 0.01% Makefile 0.01% Tcl 0.01% HTML 0.13% Jinja 2.94% Starlark 0.19% Go 0.79%

sonic-mgmt's People

Contributors

abdosi avatar bingwang-ms avatar congh-nvidia avatar daall avatar jibinbao avatar jleveque avatar junchao-mellanox avatar lguohan avatar lizhijianrd avatar lolyu avatar maggiemsft avatar neethajohn avatar nhe-nv avatar ppikh avatar stephenxs avatar suvarnameenakshi avatar theasianpianist avatar vaibhavhd avatar wangxin avatar wen587 avatar wendani avatar wenyiz2021 avatar wsycqyz avatar xuchen-msft avatar xwjiang-ms avatar yaqiangz avatar yejianquan avatar yutongzhang-microsoft avatar yxieca avatar zhaohuis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonic-mgmt's Issues

Failed to run Basic Router test

The file_name 'roles/test/tasks/interface_up_down.yml' does not exist, or is not readable
Task path: roles/test/tasks/sonic.yml:71

The command to run tests:
ansible-playbook -i inventory --limit <switch_name> test_sonic.yml -b --tags basic_router -vvvvv -e "ptf_host=<ptf_host_name>"

Failed to run QOS test.

The file_name 'ansible/qos.yml' does not exist, or is not readable.
Task path: roles/test/tasks/sonic.yml:19.

Command to run tests:
ansible-playbook -i inventory --limit <switch_name> test_sonic.yml -b --tags qos -vvvvv -e "ptf_host=<ptf_host_name>""

[sync] BGP flap test script is out-of-date on new SONiC image for broadcom solution

Hi,

Just found out that the BGP flap test script is out-of-date to test new SONiC image for broadcom solution:

  1. In the bgp_entry_flap.yml, script will call ansible_python_interpreter: docker exec -i sswsyncd python.
    But now there is no docker named "sswsyncd" in latest SONiC image.

  2. For the switch_tables.py, result will got "Broadcom support missing" when parameter "asic" is set to "broadcom".

I'm not sure if this script is still testable or it will be deprecated in the future.
Please let me know if any information about this test, thanks.


Regards,
Kenie Liu

Deploy fails on bare sonic-generic.bin

TASK [sonicv2 : syncd - Post docker - restart container service] ***************
Monday 13 February 2017  12:51:38 +0200 (0:00:00.643)       0:03:32.696 ******* 
fatal: [arc-switch1027]: FAILED! => {"changed": false, "failed": true, "msg": "Failed to start syncd.service: Unit swss.service failed to load: No such file or directory.\n"}

syncd.service is deployed before swss, but service file for syncd requires swss service, which is not there yet if deployment is done on a bare sonic-generic.bin for the first time.

ACL and LAG tests improvement/refactor

in ACL and LAG tests, there are several places using "alias_reverse_map" from roles/sonicv2/...
These tests need to refactor to not using alias_reverse_map.
The files in roles/sonicv2 will eventually being removed as we have been on SonicV2 for quite a while and we should no have a version specific role.

[copp] script hang after ControlPlaneBaseTest is initialized

Hi,

I'm trying to run the CoPP script on my testbed using topology ptf32 but got script hang after ControlPlaneBaseTest is initialized.
Checked the process of CoPP script is like the following:

1. In copp.yml calling ptf_runner.yml to run the copp_tests.py for each test, like ARPTest.
2. In copp_tests.py, test will initializing the class ARPTest.
3. In class ARPTest's init function, test will initializing the class PolicyTest.
4. In class PolicyTest's init function, test will initializing the class ControlPlaneBaseTest.
5. In class ControlPlaneBaseTest's init function, test will initializing the class BaseTest.
6. Test will hang after ControlPlaneBaseTest is initialized.

Also the following ptf command is executed by script in test:

ptf --test-dir ptftests copp_tests.ARPTest --qlen=100000 --platform nn -t "verbose=False;pkt_tx_count=0" --device-socket 0-3@tcp://127.0.0.1:10900 --device-socket 1-3@tcp://172.20.192.94:10900 --disable-vxlan --disable-geneve --disable-erspan --disable-mpls --disable-nvgre 2>&1

"172.20.192.94" is the IP address of interface eth0(mgmt) of DUT.

All executed CoPP scripts in my testbed are the same as latest version on master branch.
Since I have no clue why this script will hang in this situation, could someone give me an advice to let me know about what's the process of CoPP test and the status of CoPP test.
Any information is welcome. thank you.


Regards,
Kenie Liu

The orchagent will be crashed after portchannel infterfaces up/down several times

Description:
We do the test to verify the link status of portchannel interfaces on DUT. We shutdown/no shutdown the interfaces of fanout switch and observe the link status of portchannel interfaces on DUT.

The topology is simular to MSFT's testbed, in which the following is the interface information:

 DUT Portchannel0       Fanout switch
 Ethernet0 -----------  Interface 3
 Ethernet4 -----------  Interface 4
 .... (skip)

Reproduce steps:
1. Shutdown interface 3 of fanout switch
2. Input bcmcmd "ps" on DUT and observe the link status
3. No shutdown interface 3 of fanout switch
4. Input bcmcmd "ps" on DUT and observe the link status
5. Take a break around 20 seconds
6. Repeat step 1 to 5 several times
7. If issue happens, the orchagent will be terminated and status of bcmcmd "ps" won't update

Test image version:
We have tested two commitments "b6efe43" and "116ba4b", and both of them have this issue.

Test information:

root@sonic:/home/admin# show ver
SONiC Software Version: SONiC.SONiC-Ingrasys-20170907-116ba4b
Distribution: Debian 8.9
Kernel: 3.16.0-4-amd64
Build commit: 116ba4b
Build date: Thu Sep  7 17:02:06 UTC 2017
Built by: sonic@debian

Docker images:
REPOSITORY                TAG                 IMAGE ID            SIZE
docker-syncd-brcm         latest              ef4f137855e2        318.5 MB
docker-orchagent-brcm     latest              8a50662f894d        258.5 MB
docker-lldp-sv2           latest              9c3be667f967        256.7 MB
docker-dhcp-relay         latest              a63a2e7d63d0        253.6 MB
docker-database           latest              81b09d914a1d        251.8 MB
docker-snmp-sv2           latest              132ed59ee781        291.4 MB
docker-teamd              latest              2063afbf01b6        255.5 MB
docker-platform-monitor   latest              3a9763be5e0c        271.1 MB
docker-fpm-quagga         latest              e653769681bb        262.1 MB

root@sonic:/home/admin# show platform sum
Platform: x86_64-ingrasys_s9100-r0
HwSKU: INGRASYS-S9100-C32
ASIC: broadcom

The syslog in DUT:

...
Sep  1 03:16:40.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:8e:56:47 on Ethernet124
Sep  1 03:16:40.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::7e on Ethernet124
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:79:a8:6d on Ethernet64
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::42 on Ethernet64
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:aa:7a:e8 on Ethernet92
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::5e on Ethernet92
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:a7:5a:e6 on Ethernet108
Sep  1 03:16:42.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::6e on Ethernet108
Sep  1 03:16:44.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:83:0e:1e on Ethernet120
Sep  1 03:16:44.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::7a on Ethernet120
Sep  1 03:16:46.0 sonic NOTICE orchagent: :- addNeighbor: Created neighbor 52:54:00:dd:85:74 on Ethernet80
Sep  1 03:16:46.0 sonic NOTICE orchagent: :- addNextHop: Created next hop fc00::52 on Ethernet80
Sep  1 03:16:54.0 sonic NOTICE orchagent: :- on_port_state_change: Get port state change notification id:100000000001f status:2
Sep  1 03:16:54.0 sonic NOTICE orchagent: :- setHostIntfsOperStatus: Set operation status DOWN to host interface Ethernet64
Sep  1 03:16:54.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet64 admin status to up
Sep  1 03:16:54.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet64 MTU to 9216
Sep  1 03:16:59.0 sonic NOTICE orchagent: :- on_port_state_change: Get port state change notification id:100000000001f status:1
Sep  1 03:16:59.0 sonic NOTICE orchagent: :- setHostIntfsOperStatus: Set operation status UP to host interface Ethernet64
Sep  1 03:16:59.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet64 admin status to up
Sep  1 03:16:59.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet64 MTU to 9216
Sep  1 03:25:41.0 sonic NOTICE orchagent: :- on_port_state_change: Get port state change notification id:1000000000019 status:2
Sep  1 03:25:41.0 sonic NOTICE orchagent: :- setHostIntfsOperStatus: Set operation status DOWN to host interface Ethernet0
Sep  1 03:25:41.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet0 admin status to up
Sep  1 03:25:41.0 sonic NOTICE orchagent: :- doPortTask: Set port Ethernet0 MTU to 9216
Sep  1 03:25:41.0 sonic NOTICE orchagent: :- removeLagMember: Remove member Ethernet0 from LAG PortChannel0 lid:2000000000588 lmid:1a00000000058a
Sep  1 03:25:42.0 sonic NOTICE orchagent: :- addNextHopGroup: Create next hop group nhgid:50000000005ed nh:10.0.0.5,10.0.0.9,10.0.0.13,10.0.0.17,10.0.0.21,10.0.0.25,10.0.0.29
Sep  1 03:25:44.0 sonic NOTICE orchagent: :- addNextHopGroup: Create next hop group nhgid:50000000005ee nh:fc00::a,fc00::12,fc00::1a,fc00::22,fc00::2a,fc00::32,fc00::3a
Sep  1 03:25:47.0 sonic ERR orchagent: :- meta_generic_validation_remove: object 0x50000000005d8 reference count is 1, can't remove
Sep  1 03:25:47.0 sonic ERR orchagent: :- removeNextHopGroup: Failed to remove next hop group nhgid:50000000005d8
Sep  1 03:25:51.0 sonic NOTICE orchagent: :- removeNeighbor: Removed next hop fc00::2 on PortChannel0
Sep  1 03:25:51.0 sonic NOTICE orchagent: :- removeNeighbor: Removed neighbor 52:54:00:d2:8f:2f on PortChannel0
Sep  1 03:25:56.0 sonic ERR syncd: brcm_sai_remove_next_hop:373 L3 egress destroy failed with error Operation still running (0xfffffff6).
Sep  1 03:25:56.0 sonic ERR syncd: :- processEvent: failed to execute api: remove, key: SAI_OBJECT_TYPE_NEXT_HOP:oid:0x40000000005b4, status: SAI_STATUS_OBJECT_IN_USE
Sep  1 03:25:56.0 sonic NOTICE orchagent: :- handle_switch_shutdown_request: switch shutdown request
Sep  1 03:25:56.0 sonic ERR orchagent: :- on_switch_shutdown_request: Syncd stopped
Sep  1 03:25:56.0 sonic INFO supervisord: orchagent terminate called without an active exception
Sep  1 03:25:56.0 sonic NOTICE syncd: :- exit_and_notify: sending switch_shutdown_request notification to OA
Sep  1 03:25:56.0 sonic NOTICE syncd: :- exit_and_notify: notification send successfull
Sep  1 03:25:56.0 sonic WARNING syncd: :- exit_and_notify: sleep forever to keep data plane active
Sep  1 03:25:57.489931 sonic INFO swss.sh[1873]: 2017-09-01 03:25:57,489 INFO exited: orchagent (terminated by SIGABRT (core dumped); not expected)

ntp.conf syntax error

In boot log:

May 22 08:10:25 arc-switch1026 ntpd[863]: line 37 column 11 syntax error, unexpected T_EOC
May 22 08:10:25 arc-switch1026 ntpd[863]: syntax error in /var/lib/ntp/ntp.conf.dhcp line 37, column 11

template:

interface ignore wildcard
interface listen {{ minigraph_mgmt_interface.addr }}    <--- line 37
interface listen 127.0.0.1

generated:

nterface ignore wildcard
interface listen
interface listen 127.0.0.1

Also in line 3 the file location needs to be fixed:
it is ansible/roles/acs/templates/ntp.conf.j2
while the file is at ansible/roles/sonic-common/templates/ntp.conf.j2

bgp_fact test fails on LAG configuration

TASK [test : Compare the bgp neighbors name with minigraph bgp neigbhors name] *
Friday 10 March 2017  11:53:05 +0200 (0:00:03.121)       0:00:17.446 ********** 
fatal: [arc-switch1026-lag]: FAILED! => {"failed": true, "msg": "ERROR! 'dict object' has no attribute u'FC00::12'"}

When bgp_fact test is runs on LAG configuration, it fails on IPv6 verification,
I noticed that switch5.xml template for LAG differs from switch2.xml in a way that it has IPv6 BGP peers listed in PeeringSessions.

Looks like bgp_fact test has to be updated.

DHCP relay test fails

TASK [test : PTF Test - DHCP Relay Test] ***************************************
task path: /.autodirect/rdmzsysgwork/marianp/sonic/sonic-mgmt/ansible/roles/test/tasks/ptf_runner.yml:41
Friday 28 April 2017  19:03:22 +0300 (0:00:00.093)       0:00:07.734 ********** 
fatal: [arc-switch1026-t0-64-32]: FAILED! => {"failed": true, "msg": "ERROR! list object has no element 0"}

Looks like minigraph lacks some information.
How to set dhcp servers in minigraph?

orchagent is not restarted after deploy

After running deploy playbook that installs docker-orchagent different from what was already on switch, switch goes into state where all interfaces are destroyed, and orchagent has to be restarted manually.

Reproduced on: MSN2700

add test to test neighbor mac change for ipv6

sudo ip -6 neigh change fc00::2 lladdr 58:bc:27:af:cc:bb dev Ethernet0

syslog
Sep 25 19:37:22.218138 str-s6000-acs-8 NOTICE orchagent: :- addNeighbor: Updated neighbor 58:bc:27:af:cc:dd on Ethernet0

Everflow test failure due to extra packets received on the port

The current test case has issues while calling the testutils.dp_poll function. It will check all the received packets on the devices. According to the purpose of this test, we need to have the option --relax to ignore unrelated packets received on targeted interfaces and only care about if the certain packet is mirrored back to this target interfaces. Thus, it is better to use the function verify_packet_any_port.

Failed to run SyncD BGP Flaps test.

No action detected in task. The error appears to have been in roles/test/tasks/bgp_flap.yml: line 23
Task path: roles/test/tasks/sonic.yml:35

The command to run tests:
ansible-playbook -i inventory --limit <switch_name> test_sonic.yml -b --tags sync -vvvvv -e "ptf_host=<ptf_host_name>" -e "vmhost_num=<vm_num>"

[copp] Should not open a device socket which doesn't opened by ptf_nn_agent.py

Hi,

According to the copp.yml. PTF will try to use device sockets when ansible calling ptf_runner.yml to run the copp test with nn.
The sample ptf_extra_options is like the following:

ptf_extra_options: "--device-socket 0-3@tcp://127.0.0.1:10900 --device-socket 1-3@tcp://{{ ansible_eth0['ipv4']['address'] }}:10900"

The PTF host device socket(0-3@tcp://127.0.0.1:10900) had been opened when boot up docker PTF by testbed-cli.sh.
However there is no any other script or command to open the remote device socket(1-3@tcp://{{ ansible_eth0['ipv4']['address'] }}:10900) before running the copp test.
It will cause the script hang when PTF is initializing the PTF script.

Also why using the IP address of eth0 of DUT({{ ansible_eth0['ipv4']['address'] }}) as IP address of the remote device socket?

For now I opened a device socket of the IP address of eth3 of socker PTF like the following:

python /opt/ptf_nn_agent.py --device-socket 1@tcp://10.0.0.7:10900 -i 1-3@eth3

Also script will not hang after modified the IP address of remote host to the IP address of eth3 of docker PTF.

Please let me know is there any reference or document about the details of script of copp test?


Regards,
Kenie Liu

Failed to run Interface Flap from Neighbor test.

No action detected in task. The error appears to have been in roles/test/tasks/interface_up_down.yml: line 3
Task path: roles/test/tasks/sonic.yml:51

The command to run tests:
ansible-playbook -i inventory --limit <switch_name> test_sonic.yml -b --tags link -vvvvv -e "ptf_host=<ptf_host_name>"

ACL Test Ethernet type 0x1234 packet is always dropped

The ACL test is to check if a specific packet will be dropped after the ACL rule is applied.
The test 5 doesn't work because right now the ingress interface is a router interface. If the packet Ethernet type is not IP, it will be dropped anyway regardless of the ACL rule.

This test case needs to be run on a layer 2 scenario e.g. VLAN to check if the ACL rule works or not.

Log analyzer is catching unrelated log entries

Currently log analyzer is catching all error log entries in syslog and will fail the test if number of error lines is not consistent with expect amount.

Is it possible to add a limit that only to catch error from a certain docker? For example, when we are running everflow test, we want to ignore the errors from SNMP.

Failed to run tests due to import issue in minigraph_facts.py file

ansible-playbook test_sonic.yml -i inventory --limit arc-switch1026-lag --become --tags fib -e run_dir="/tmp" -e ptf_host=ptf-fib -e testbed_type=t1-lag -vvvvv
...
TASK [test : Gathering minigraph facts about the device] ***********************
task path: /.autodirect/rdmzsysgwork/oleksandri/sonic/sonic-mgmt/ansible/roles/test/tasks/sonic.yml:1
Tuesday 21 March 2017  19:14:49 +0200 (0:00:00.183)       0:00:01.782 *********
ESTABLISH LOCAL CONNECTION FOR USER: oleksandri
arc-switch1026 EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1490116489.48-119458770407525 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1490116489.48-119458770407525 )" )
arc-switch1026 PUT /tmp/user/61131/tmpdCqXkf TO /labhome/oleksandri/.ansible/tmp/ansible-tmp-1490116489.48-119458770407525/minigraph_facts
arc-switch1026 EXEC LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/env python /labhome/oleksandri/.ansible/tmp/ansible-tmp-1490116489.48-119458770407525/minigraph_facts; rm -rf "/labhome/oleksandri/.ansible/tmp/ansible-tmp-1490116489.48-119458770407525/" > /dev/null 2>&1
fatal: [arc-switch1026-lag]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_args": {"filename": null, "host": "arc-switch1026-lag"}, "module_name": "minigraph_facts"}, "msg": "'module' object is not callable"}

PLAY RECAP *********************************************************************
arc-switch1026-lag         : ok=2    changed=0    unreachable=0    failed=1

cannot ipv6 address in ptf container

net.ipv6.conf.eth0.disable_ipv6 = 1
root@ca8b83f02540:~# sysctl -w net.ipv6.conf.eth0.disable_ipv6=0     
sysctl: setting key "net.ipv6.conf.eth0.disable_ipv6": Read-only file system
root@ca8b83f02540:~# ip -6 addr add fc00::2/126 dev eth0           
RTNETLINK answers: Permission denied

How SNMP test pass since hostname in minigraph will not affect linux hostname

Hi,
https://github.com/Azure/sonic-mgmt/blob/master/ansible/roles/test/tasks/snmp.yml
When I ran the SNMP test, I find the test case will compare SNMP sysname and inventory_hostname.
I know inventory_hostname is same with hostname in minigraph, but hostname in minigraph will not affect linux hostname.
So the sysname get from SNMP is always different from inventory_hostname unless manually modify linux hostname.
I want to know how you make this test pass? Thanks.

Failed to run LLDP test.

No action detected in task. The error appears to have been in roles/test/tasks/lldp.yml : line 2.
Task path: roles/test/tasks/sonic.yml : 1

Command to run tests:
ansible-playbook -i inventory --limit <switch_name> test_sonic.yml -b --tags lldp -vvvvv -e "ptf_host=<ptf_host_name>"

Add test case to check Max MTU

Create test case to check Max MTU (9100) for t1/t1-lag topologies.

  1. Send Jumbo frame as Ping and expect response
  2. Send Jumbo frame to an IP destination and expect routed packet.

LAG on VMs doesn't react properly (t1-lag topology).

  • Issue description:
    When sending packets from DUT to LAG interface on spine-group VM, all the packets always arrive on the same LAG member. When switching that LAG member state into "administratively down", packets still keep arriving onto that LAG member port.

  • Steps to reproduce:

  1. Get lag_test.py (commit available by link) and "scp" it into PTF host filesystem (e.g. into /tmp).
    antonpatenko@c99a225

  2. SSH to ARISTA03T2 (as "admin") and shutdown Ethernet1 (put into "administratively down" state)

  3. SSH to PTF host and run tcpdump for eth2 interface (this interface is supposed to receive all the traffic that arrives on Ethernet1 of ARISTA03T2) - using command: "tcpdump -i eth2".

  4. Run lag_test.py with the following command:
    ptf --test-dir /tmp --platform remote lag_test.LagMembersTrafficTest -t "dst_addr='10.0.0.5/31';src_iface=29;check_pkts_iface=2;num_of_pkts=20;dut_mac='<dut_mac_address>'"

*dst_addr - IP address of LAG interface on ARISTA03T2
*src_iface - PTF host interface where lag_test.py will send packets from
*check_pkts_iface - PTF host interface eth2, where we are expecting packets to arrive
*dut_mac - MAC address of DUT-switch

  1. You are supposed to receive ICMP packets on that port and see the corresponding output of tcpdump. Normally it shouldn't happen, when LAG member in down-state, but it does.

Few words about LACP packets: usually LACP rate on DUT and VMs is fast (though it should be slow), so LACP packets do arrive every second. But when you shutdown LAG member interface on VM (as shown at step number 1), LACP rate goes to "slow" (in 30-60 seconds after shutting down) and LACPs are arriving with 30 seconds delay. This behaviour is strange, because LACP packets are not expected to be sent by down-state LAG member.

ip-in-ip decap

This test case is aimed at testing the DUTs ability to do de-capsulation of IP encapsulated packets.

  1. Configure the Sonic with ip-decap configuration. (1.1.1.1/32, 3.3.3.3/32). See example for https://github.com/Azure/sonic-swss/blob/master/swssconfig/sample/netbouncer.json

  2. From the PTF docker, craft a double encapsulated IP packet as follows:
    i. outer ip header [S:2.2.2.0,D:1.1.1.1]
    ii. inner ip header [S:1.1.1.1,D:2.2.2.0]

  3. When the double encapsulated packet arrives to the Sonic it get de-capsulated by the tunnel interface.
    As a results the de-capsulated packer gets routed back to the interface where it came from. Confirm this on the capture on the PTF. Verify the ECN 2-bits in the de-capsulated packet is the same as the outer packet sent out. Verify the DSCP 6-bits in the de-capsulated packet is the same as the outer packet DSCP. Verify the TTL in the de-capsulated packet is the same as the previous inner header or minus - 1.

  4. Verify the Sonic does not see the encapsulated packet. ip-in-ip packet should not go to cpu, packet should not be seen on the DUT.

  5. Repeat steps 1 through 4 with another IP encapsulated packet, like this:
    i. outer ip header [S:2.2.2.0,D:3.3.3.3]
    ii. inner ip header [S:3.3.3.3,D:2.2.2.0]

  6. Confirm that the packet that comes back to ptf docker decapsulated.

  7. Repeat steps 1 through 3 with a triple IP encapsulated packet, like this:
    i. outer ip header [S:2.2.2.0,D:1.1.1.1]
    ii. inner ip header [S:1.1.1.1,D:2.2.2.0]
    iii. inner ip header [S:4.4.4.4,D:4.4.4.3]

  8. Confirm that the packet that comes back to the traffic generator still has the following two IP headers:
    i. inner ip header [S:1.1.1.1,D:2.2.2.0]
    ii. inner ip header [S:4.4.4.4,D:4.4.4.3]

Default LACP rate is set incorrectly both on VMs and DUT.

The LACP rate value for devices on testbed is expected to be set to "slow". It is so on DUT, but on VMs the rate is set to "fast".

  • Steps to reproduce:

1.1) SSH to PTF host.
1.2) Run tcpdump for eth3 ("tcpdump -i eth3") and verify that LACP PDUs arrive each second.

2.1) SSH to ARISTA03T2 (as "admin").
2.2) Run next commands:
- enable
- show running-config interfaces ethernet1
- show running-config interfaces ethernet2
2.3) Using output of the last command, verify that LACP rate is set to "fast".

3.1) SSH to DUT.
3.2) Type the following command:
docker exec -i teamd teamdctl Ethernet0 state
3.3) Using output of the last command, verify that "fast rate" value is set to "no". It means that LACP rate on DUT is slow (at least, teamdctl thinks so).

File "ptf_portmap" is missing when running ECMP script

Hi,

I'm running the ECMP script to verify my DUT with the following CLI:

ansible-playbook -i inventory --limit switch1 test_sonic.yml -b --tags ecmp -e "ptf_host=172.18.0.2" -vvvvv

switch1 is the DUT
mgmt IP address of PTF is 172.18.0.2

According to the link(https://github.com/Azure/sonic-mgmt/blob/3db159c078a1afad9355fab0ed2a81519edf6b7e/ansible/roles/test/tasks/ecmp.yml) of ecmp.yml:

  • name: copy portmap
    copy: src={{ ptf_portmap }} dest=/root
    delegate_to: "{{ ptf_host }}"

There is a step to copy the file of ptf_portmap to PTF but the file is undefined:

TASK [test : copy portmap] *****************************************************
task path: /home/tester/sonic_ansible/sonic-mgmt/ansible/roles/test/tasks/ecmp.yml:5
Monday 31 July 2017 11:39:43 +0800 (0:00:00.091) 0:00:09.714 ***********
fatal: [switch1]: FAILED! => {"failed": true, "msg": "ERROR! 'ptf_portmap' is undefined"}

Please let me know how to get this file, thanks.


Regards,
Kenie Liu

Switch PortChannel interfaces go down during BGP storm

Steps to reproduce:

  1. Deploy t1-lag topology to testbed;
  2. Deploy t1-lag minigraph to DUT;
  3. Wait for PortChannel interfaces to come up;
  4. Bug -> When DUT and VMs exchange routes, some PortChannel interfaces tend to go down.

Version: SONiC-OS-HEAD.344-1be1c46

@lguohan @pavel-shirshov Did you observe similar problems on t1-lag? I am wondering if it is due to perforamance of our server.

add test case to cover BGP multipath relax

Sonic is required to support BGP multipath relax.
The default BGP behavior only installs routes with exact the same AS_PATH into RIB. With multipath-relax, the AS_PATH only needs to be of the same length.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.