Skip to content

Switch Calculator LOOKUP not working #70

@nithishkgnani

Description

@nithishkgnani

I have done the basic setup of the OS following the official GitHub repository (P4-NetFPGA). I tried to compile and run the three assignments available in the tutorials. The assignments 2 & 3 (TCP monitor and INT) haven't yielded the expected results - The python test scripts don't print the expected results.

Assignment 1 (Switch Calculator) supports five operations: ADD, SUBTRACT, ADD_REG, SET_REG and LOOKUP. I am able to implement every operation except LOOKUP. It is supposed lookup the given key in a table on the switch and return the result. But it always returns 0. I have included the switch_calc_tester output at the bottom.

I am able to compile my P4 programs and download the bit file into the board, but I do not know how to troubleshoot/debug the issue. While following the steps in the tutorial, the simulations pass in every assignment. I have also referred to and tried out the steps written in Debugging P4 Programs under the Workflow-Overview page.

I need help with debugging the P4-NetFPGA-SUME workflow in both simulations and on the hardware during runtime.

switch_calc_tester output:

root@xxxxxx:~/Documents/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/switch_calc/sw/hw_test_tool# ./switch_calc_tester.py 
WARNING: No route found for IPv6 destination :: (no default route?)
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
The HW testing tool for the switch_calc design
 type help to see all commands
testing> run_test 5 + 9
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:5          OP_CODE:0          OP2:9          RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:5          OP_CODE:0          OP2:9          RESULT:14                |
------------------------------------------------------------------------------------------

testing> run_test 64 - 30
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:64         OP_CODE:1          OP2:30         RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:64         OP_CODE:1          OP2:30         RESULT:34                |
------------------------------------------------------------------------------------------

testing> run_test 1 SET_REG 25
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:4          OP2:25         RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:4          OP2:25         RESULT:0                 |
------------------------------------------------------------------------------------------

testing> run_test 1 ADD_REG 50
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:3          OP2:50         RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:3          OP2:50         RESULT:75                |
------------------------------------------------------------------------------------------

testing> run_test 1 LOOKUP 1
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:2          OP2:1          RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:1          OP_CODE:2          OP2:1          RESULT:0                 |
------------------------------------------------------------------------------------------

testing> run_test 2 LOOKUP 1
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
Sent pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:2          OP_CODE:2          OP2:1          RESULT:0                 |
------------------------------------------------------------------------------------------

Received pkt: 
------------------------------------------------------------------------------------------
|  ETHERNET  | OP1:2          OP_CODE:2          OP2:1          RESULT:0                 |
------------------------------------------------------------------------------------------

testing> 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions