This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM-Q1: tc8 protocol layer test

Part Number: TDA4VM-Q1

Hi experts,

I used the cpsw9g module to connect a 100 megabit phy: tja1101.

It works fine, now I'm having a bit of a problem doing the tc8 protocol layer test.

1.ICMPv4_ERROR_02

When the DUT receives an IPV4 packet whose Fragment Offset is 0, it should send an ICMP packet. But it doesn't.

Here is a correct demonstration

2.IPv4_REASSEMBLY_13

After receiving multiple packets, the DUT reassembles the packets and returns ICMP Echo Reply.

In the actual test, the DUT did not return an ICMP Echo message

Here is a correct demonstration:

I used sdk linux 8.4 ,sdk rots 8.4

How can I optimize to conform to tc8 specifications?

  • Hi,

    Can you please confirm, are you running CPSW9g with EthFw based application or Native Linux Driver?

    Also, can you please share your test setup details like how ports of CPSW9g are connected and what is your test? and source/sender of tc8 test suite and receiver?

    Best Regards,
    Sudheer

  • HI,

    I run running CPSW9g with EthFw based vision_app.  I added the driver for tja1101, which is connected to port1 of cpsw9g.

    The tester:

    This is a host computer that sends test messages to the dut.

    DUT:

    This is the device under test which is  my tda4 board using cpsw9g.

     

    一 .ICMPv4_ERROR_02

    Test Procedure

    1. TESTER: Construct an ICMP Echo Request. Send an IP packet to
    <DIface-0>, containing:
    - Source Address field set to address of host-1
    - Destination Address field set to address of DUT
    - Fragment Offset field set to zero
    - Flags field, containing:
    - MF bit set to 1
    - IP Options, containing:
    - One Internet Timestamp option, containing:
    - length field set to 10
    - pointer field set to 9
    - one timestamp value
    - first half of the constructed ICMP packet
    2. TESTER: Listen (for up to <ListenTime> seconds) on <DIface-0>
    3. DUT: Send one ICMP Parameter Problem message
    4. TESTER: Verify that the received ICMP Parameter Problem Message
    contains:
    - Pointer field set to 22 (Basic IP Header length (20) +
    third octet (pointer field of
    timestamp option)

    Pass Criteria

    3. DUT: Send one ICMP Parameter Problem message
    4. TESTER: Verify that the received ICMP Parameter Problem Message
    contains:
    - Pointer field set to 22 (Basic IP Header length (20) +
    third octet (pointer field of
    timestamp option)

    I failed the test.

    In the packets I tested,cpsw9g did not send ICMP Parameter Problem message

    二.IPv4_REASSEMBLY_13

    Test Procedure 

    1. TESTER: Construct an ICMP Echo Request, containing:
    - Data field set to "ECU NETWORK VALIDATION TEST"
    Send an IP packet to <DIface-0>, containing:
    - Source Address field set to address of host-1
    - Destination Address field set to address of DUT
    - Fragment Offset field set to zero
    - Flags field, containing:
    - MF bit set to 1
    - first 16 octets of the constructed ICMP packet
    2. TESTER: Listen (for upto <FragReassemlyTimeout>/4 seconds) on <DIface-0>
    3. DUT: Do not send ICMP Echo Reply
    4. TESTER: Send an IP packet to <DIface-0>, containing:
    - Source Address field set to address of host-1
    - Destination Address field set to address of DUT
    - Fragment Offset field set to 2
    - Flags field, containing:
    - MF bit set to 1
    - Data field set to "DUPLICATE FRAGMENTS TEST"
    5. TESTER: Listen (for upto <FragReassemlyTimeout>/4 seconds) on <DIface-0>
    6. DUT: Do not send ICMP Echo Reply
    7. TESTER: Send an IP packet to <DIface-0>, containing:
    - Source Address field set to address of host-1
    - Destination Address field set to address of DUT
    - Fragment Offset field set to 2
    - Flags field, containing:
    - MF bit set to 1
    - second 8 octets of the constructed ICMP packet
    8. TESTER: Listen (for upto <FragReassemlyTimeout>/4 seconds) on <DIface-0>
    9. DUT: Do not send ICMP Echo Reply
    10. TESTER: Send an IP packet to <DIface-0>, containing:
    - Source Address field set to address of host-1
    - Destination Address field set to address of DUT
    - Fragment Offset field set 3
    - Flags field, containing:
    - MF bit set to zero - remaining portion of the constructed ICMP packet
    11. TESTER: Listen (for upto <FragReassemlyTimeout>/4 seconds) on <DIface-0>
    12. DUT: Send ICMP Echo Reply
    13. TESTER: Verify that the received ICMP Echo Reply contains:
    - Data field set to "ECU NETWORK VALIDATION TEST"

    Pass Criteria

    3. DUT: Do not send ICMP Echo Reply
    6. DUT: Do not send ICMP Echo Reply
    9. DUT: Do not send ICMP Echo Reply
    12. DUT: Send ICMP Echo Reply
    13. TESTER: Verify that the received ICMP Echo Reply contains:
    - Data field set to "ECU NETWORK VALIDATION TEST" 

    I failed the test. The cpsw9g module did not reassemble the packet and returned the packet.

    I'm not sure if it's the cpsw9g module reassembling the message or the kernel ?

  • Hi,

    I run running CPSW9g with EthFw based vision_app.  I added the driver for tja1101, which is connected to port1 of cpsw9g.

    As you are running CPSW9g with EthFw based, Port-1 is mapped to A72 as Virtual MAC only interface (via eth2)

    Before checking the ICMP message, can you check first ARP is resolved or not? also, IP is set for eth2 interface in A72.

    Can you collect tcpdump data on eth2 while performing the test and check whether packets were received to A72 or not?

    Also, share the log with us.

    Note:
    Linux Network will receive the packets sent from Tester via Port-1, CPSW will just forward the incoming packet on Port-1 to A72 (Linux) and Response from Linux network stack will be sent out from Port-1.

    Best Regards,
    Sudheer