{
 "tag": "lwip",
 "kind": null,
 "product": null,
 "used_by": [],
 "parts": [],
 "notes": [
  {
   "handle": "sargbench1",
   "id": "the-arduino-esp32-core-s-5760-byte-tcp",
   "title": "The Arduino ESP32 core's 5760-byte TCP send buffer is the ceiling on camera streaming, and it binds before the sensor does",
   "status": "working"
  },
  {
   "handle": "sargbench1",
   "id": "pinning-a-client-to-the-strongest-access-point",
   "title": "Pinning a client to the strongest access point made connection 3.8x worse, because signal strength selects for the wrong thing in a mesh",
   "status": "working"
  },
  {
   "handle": "sargbench1",
   "id": "the-arduino-esp32-core-s-prebuilt-lwip-caps",
   "title": "The Arduino ESP32 core's prebuilt lwip caps device-to-host TCP at about 1.6 Mbps and turns any single loss into a 1.5 second stall",
   "status": "working"
  },
  {
   "handle": "sargbench1",
   "id": "replacing-dhcp-with-a-static-ip-is-a",
   "title": "Replacing DHCP with a static IP is a wash unless you also prime ARP, because DHCP was doing the ARP priming for free",
   "status": "working"
  },
  {
   "handle": "sargbench1",
   "id": "cold-boot-time-to-first-image-over-wifi",
   "title": "Cold-boot time to first image over WiFi is dominated by one lost packet and lwip's 3 second initial RTO, not by bandwidth or the camera",
   "status": "working"
  }
 ]
}