)]}'
{
  "commit": "b66e27d9b29a172a097c737ab4d378d60fe01b05",
  "tree": "3c670bb154413561ee9f3b1ddc758607a1503315",
  "parents": [
    "77acf6b41f705384593a057c2bea057283bf429b"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Thu Jun 27 13:26:39 2024 +0100"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Thu Jun 27 13:43:37 2024 +0100"
  },
  "message": "[ipv6] Expose router address for DHCPv6 leased addresses\n\nThe DHCPv6 protocol does not itself provide a router address or a\nprefix length.  This information is instead obtained from the router\nadvertisements.\n\nOur IPv6 minirouting table construction logic will first construct an\nentry for each advertised prefix, and later update the entry to\ninclude an address assigned within that prefix via stateful DHCPv6 (if\napplicable).\n\nThis logic fails if the address assigned via stateful DHCPv6 does not\nfall within any of the advertised prefixes (e.g. if the network is\nconfigured to use DHCPv6-assigned /128 addresses with no advertised\non-link prefixes).  We will currently treat this situation as\nequivalent to having a manually assigned address with no corresponding\nrouter address or prefix length: the routing table entry will use the\ndefault /64 prefix length and will not include the router address.\n\nDHCPv6 is triggered only in response to a router advertisement with\nthe \"Managed Address Configuration (M)\" or \"Other Configuration (O)\"\nflags set, and a router address is therefore available at the point\nthat we initiate DHCPv6.\n\nRecord the router address when initiating DHCPv6, and expose this\nrouter address as part of the DHCPv6 settings block.  This allows the\nrouting table entry for any address assigned via stateful DHCPv6 to\ncorrectly include the router address, even if the assigned address\ndoes not fall within an advertised prefix.\n\nAlso provide a fixed /128 prefix length as part of the DHCPv6 settings\nblock.  When an address assigned via stateful DHCPv6 does not fall\nwithin an advertised prefix, this will cause the routing table entry\nto have a /128 prefix length as expected.  (When such an address does\nfall within an advertised prefix, it will continue to use the\nadvertised prefix length.)\n\nOriginally-fixed-by: Guvenc Gulce \u003cguevenc.guelce@sap.com\u003e\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e70f7e6391345f6ac9158087b7a677701dd6363",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/dhcpv6.h",
      "new_id": "065e9c376dcca0b6ffe93886efa62e58ff0a1e6d",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/dhcpv6.h"
    },
    {
      "type": "modify",
      "old_id": "373a9360b1ed419c2d62700f7374959f8d46bfc8",
      "old_mode": 33188,
      "old_path": "src/net/ndp.c",
      "new_id": "3c555f4a327e3b8e96485dc32a05857ac2f70927",
      "new_mode": 33188,
      "new_path": "src/net/ndp.c"
    },
    {
      "type": "modify",
      "old_id": "9e27dec6fa1a802eae6f91cdc9df01febf0d8403",
      "old_mode": 33188,
      "old_path": "src/net/udp/dhcpv6.c",
      "new_id": "a49109894184287cbbbf6d048ed33057490f4903",
      "new_mode": 33188,
      "new_path": "src/net/udp/dhcpv6.c"
    }
  ]
}
