)]}'
{
  "commit": "8c7e2d6068e24e66bcb7e2b7f02c87d7aef32635",
  "tree": "b9c08e325a36c0aba7dce6c31eb53c6cfc2e9381",
  "parents": [
    "c11734eee0fcaaf49f6f3f0342f928e1e5232560"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Mon Mar 18 15:21:04 2024 +0000"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Mon Mar 18 15:36:15 2024 +0000"
  },
  "message": "[snp] Pad transmit buffer length to work around buggy vendor drivers\n\nThe Mellanox/Nvidia UEFI SNP driver is built from the same codebase as\nthe iPXE driver, and appears to contain the bug that was fixed in\ncommit c11734e (\"[golan] Use ETH_HLEN for inline header size\").  This\nresults in identical failures when using the SNP interface (via e.g.\nsnponly.efi) to drive a Mellanox card while EAPoL is enabled.\n\nWork around the underlying UEFI SNP driver bug by padding transmit I/O\nbuffers to the minimum Ethernet frame length before passing them to\nthe underlying SNP driver\u0027s Transmit() function.\n\nThis padding is not technically necessary, since almost all modern\nhardware will insert transmit padding as necessary (and where the\nhardware does not support doing so, the underlying SNP driver is\nresponsible for adding any necessary padding).  However, it is\nguaranteed to be harmless (other than a miniscule performance impact):\nthe Ethernet specification requires zero padding up to the minimum\nframe length for packets that are transmitted onto the wire, and so\nthe receiver will see the same packet whether or not we manually\ninsert this padding in software.\n\nThe additional padding causes the underlying Mellanox SNP driver to\navoid its faulty code path, since it will never be asked to transmit a\nvery short packet.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c66aa7d28d3a19ec512a05c84f04681fe0eafc5d",
      "old_mode": 33188,
      "old_path": "src/drivers/net/efi/snpnet.c",
      "new_id": "b8bf963e91ec3a870d862154cfc96534bfe4e73e",
      "new_mode": 33188,
      "new_path": "src/drivers/net/efi/snpnet.c"
    }
  ]
}
