Forum Discussion
Altera_Forum
Honored Contributor
16 years agoBill!
Could you give some hints how to improve throughput in lwIP-based solution? The main task of my application is transmitting constant rate bitstream (ADC data) to remote computer. Expected payload is about 100 Mbit/sec, so, to have some margin, I’d like to achieve 150 Mbit/sec UDP throughput. For experimenting I use lwIP_Example you kindly posted here + I added routine for generating UDP traffic (see udp_test.c attached; udp_test_init() is called just after IP address is assigned by DHCP, udp_test() is called repeatedly from lwIP loop in main()). I measure throughput by ‘bm’ utility from Altera's “Nios II Ethernet Acceleration Design Example”. On the moment I I have 55 MBit/sec. What improvements can be made from software side? 1) Switching from –O0 to –O3 improved bitrate from 11.5M to 55M (almost 5 times). What about other compiler options? 2) I see that lwIP code contains provisions for linking several packets into a chain. Can I benefit from this feature and how to use it? 3) What are the most performance critical parts of lwIP that can be disabled? 4) I have point-to-point link and can assume that receiver has known in advance IP and MAC. Is it possible to save on routing? 5) Any other ideas? Thank you in advance, Igor