Skip to content

FreeRTOS+TCP port code: NetworkInterface.c fills Rx queue with each received frame. #424

@njones-carehawk

Description

@njones-carehawk

NetworkInterface.c loops calling prvNetworkInterfaceInput() repeatedly UNTIL it fails. The result is each received frame is queued multiple times filling the queue - leading to dropped frames and a significant performance hit. The expected behavior is to loop until prvNetworkInterfaceInput() succeeds queueing each frame only once.

Furthermore, prvNetworkInterfaceInput() should return true if the frame was either successfully queued or was discarded (filtered), and should only return false if the message could not be queued.

If prvNetworkInterfaceInput() fails (due to a full queue) prvRXHandlerTask() should yield to allow possibly lower priority tasks to process the queue before trying again.

Metadata

Metadata

Assignees

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