Upon creation of a flow, testpmd assigns it a flow ID. Later, the flow ID is used for flow operations (query, destroy, dump).
The testpmd application allows to manage flow rules with its IDs. The flow ID is known only when the flow is created. In order to prepare a complete sequence of testpmd commands to copy/paste, the flow IDs must be predictable. The idea brought here is to allow providing some user-defined ID, chosen in advance of the effective flow creation. Example: testpmd> flow create 0 ingress user_id 0x1234 pattern eth / end actions count / drop / end Flow rule #0 created, user-id 0x1234 testpmd> flow destroy 0 user_id rule 0x1234 Flow rule #0 destroyed, user-id 0x1234 Here, "user_id" is a flag that signifies the "rule" ID is the user-id. The motivation is from OVS. OVS dumps its "rte_flow_create" calls to the log in testpmd commands syntax. As the flow ID testpmd would assign is unkwon, it cannot log valid "flow destroy" commands. With the enhancement described above, valid testpmd commands can be created in a log to copy/paste to testpmd. The application's flows sequence can then be played back in testpmd, to enable enhanced dpdk debug capabilities of the applications's flows in a controlled environment of testpmd rather than a dynamic, more difficult to debug environment of the application. -- 2.26.2.1730.g385c171