)]}'
{
  "commit": "a2fff570be6cd0b6967593f79d5c171693f3dda5",
  "tree": "cee1ec13e10f7afb539e7f32ff08606cc9368900",
  "parents": [
    "0bde40d4ba366d8419fa19f64530ea23bfc9450d"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Dec 09 14:41:51 2022 +0000"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Fri Dec 09 14:58:14 2022 +0000"
  },
  "message": "[efi] Provide VLAN configuration protocol\n\nUEFI implements VLAN support within the Managed Network Protocol (MNP)\ndriver, which may create child VLAN devices automatically based on\nstored UEFI variables.  These child devices do not themselves provide\na raw-packet interface via EFI_SIMPLE_NETWORK_PROTOCOL, and may be\nconsumed only via the EFI_MANAGED_NETWORK_PROTOCOL interface.\n\nThe device paths constructed for these child devices may conflict with\nthose for the EFI_SIMPLE_NETWORK_PROTOCOL instances that iPXE attempts\nto install for its own VLAN devices.  The upshot is that creating an\niPXE VLAN device (e.g. via the \"vcreate\" command) will fail if the\nUEFI Managed Network Protocol has already created a device for the\nsame VLAN tag.\n\nFix by providing our own EFI_VLAN_CONFIG_PROTOCOL instance on the same\ndevice handle as EFI_SIMPLE_NETWORK_PROTOCOL.  This causes the MNP\ndriver to treat iPXE\u0027s device as supporting hardware VLAN offload, and\nit will therefore not attempt to install its own instance of the\nprotocol.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "297457081817e81f1cac48266b89a94b362c08ab",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/efi/efi_null.h",
      "new_id": "d23d363499febcb8a94a94357356b1ecf627e92f",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/efi/efi_null.h"
    },
    {
      "type": "modify",
      "old_id": "c278b1d4cb05bc26eca8132a162d9ddf8ab15016",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/efi/efi_snp.h",
      "new_id": "96373b57d5368e956841697856a67a5b9516cbe7",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/efi/efi_snp.h"
    },
    {
      "type": "modify",
      "old_id": "e4baf4cf07569035d7ec5a437256876769e678a5",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/vlan.h",
      "new_id": "8bf79234b73a875115f803d3dbd877aae0b528f5",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/vlan.h"
    },
    {
      "type": "modify",
      "old_id": "29ca5b9b6c85803e62c29f58d565cf00c99f3b9f",
      "old_mode": 33188,
      "old_path": "src/interface/efi/efi_null.c",
      "new_id": "d0f0428cc1187b7e547c8c807cc78d83876d14b2",
      "new_mode": 33188,
      "new_path": "src/interface/efi/efi_null.c"
    },
    {
      "type": "modify",
      "old_id": "6649eb1b03039028c8c03b1e9b3e3f2c949e7625",
      "old_mode": 33188,
      "old_path": "src/interface/efi/efi_snp.c",
      "new_id": "a57e1f0b6b679db8bb07e198a7f2f9acec1c3c8d",
      "new_mode": 33188,
      "new_path": "src/interface/efi/efi_snp.c"
    },
    {
      "type": "modify",
      "old_id": "fe4488614063cc9121bee82ed9862c9d04cc4d8f",
      "old_mode": 33188,
      "old_path": "src/net/vlan.c",
      "new_id": "81ec623f29adaebafe8aabc76a4bcc1338fdb560",
      "new_mode": 33188,
      "new_path": "src/net/vlan.c"
    }
  ]
}
