)]}'
{
  "commit": "96629470ca54aba5049414c8fdd67427d8cdec9a",
  "tree": "03cf328bf066d439c949e264059eeb869ca2ad39",
  "parents": [
    "04c95905fd0d323930e2fe443c59a127e301c818"
  ],
  "author": {
    "name": "Sebastian Andrzej Siewior",
    "email": "bigeasy@linutronix.de",
    "time": "Wed Oct 22 15:42:28 2025 +0200"
  },
  "committer": {
    "name": "Sebastian Andrzej Siewior",
    "email": "bigeasy@linutronix.de",
    "time": "Tue Feb 03 12:16:01 2026 +0100"
  },
  "message": "raw: Add HSR handling\n\nIn a HSR network each device as two port attached to the HSR ring. The\ntwo ports are usually called port A and port B. The communication is\nEthernet based and the payload part is ETH_P_HSR. After the HSR header,\nfor PTP the payload is ETH_P_1588 as usual. So we have either\n\n     ┌─────────┬─────────┬─────────┬─────┐\n     │ MAC DST │ MAC SRC │ HSR-TAG │ PTP │\n     └─────────┴─────────┴─────────┴─────┘\nor with VLAN enabled\n     ┌─────────┬─────────┬──────────┬─────────┬─────┐\n     │ MAC DST │ MAC SRC │ VLAN-TAG │ HSR-TAG │ PTP │\n     └─────────┴─────────┴──────────┴─────────┴─────┘\n\nThe kernel is supposed not to forward HSR packets with ETH_P_1588\npayload. Also it must support socket option PACKET_HSR_BIND_PORT to bind\nthe hsr device to one of the two ports via PACKET_HSR_BIND_PORT_A or\nPACKET_HSR_BIND_PORT_B. It needs to support PACKET_HSR_INFO with the\noption PACKET_HSR_INFO_HAS_HDR for the control message in order to send\nHSR with a HSR header. These changes are not merged into the upstream.\n\nThis interface is used by ptp4l to receive both copies of a packets and\nto send a packet on one of the two ports including a PTP timestamp.\n\nThe clock is setup as TC which means the forwarding done by ptp4l will\nproperly update the correction header. The HSR header of a received\nmessage is saved so it can be used while the packet is forwarded. This\nis important to keep the MAC address of the sender but also to keep HSR\nfields such as sequence number or port.\nThe PDELAY_* packets are not forwarded and instead responded to. Here\nthe HSR header is constructed by the HSR stack and the packet is sent\nonly on the request port.\n\nThe added BPF filter is based on the existing one and adds HSR type\nhandling and ignores possible VLAN. The filter drops all packets which\nare sent by \"us\". The sender is supposed to remove his packets from the\nring.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "276eec44997db9af7993821f6c738741a4b2e6d6",
      "old_mode": 33188,
      "old_path": "ether.h",
      "new_id": "577a07ee1ef7d981d9875406235135e8fcfa181b",
      "new_mode": 33188,
      "new_path": "ether.h"
    },
    {
      "type": "modify",
      "old_id": "c6be8fdbd36c9f0e2cc3a02d316dc8b08b6f7dec",
      "old_mode": 33188,
      "old_path": "missing.h",
      "new_id": "583e035d8854c5ecc9a1bd8a2607f73f0e8b4c25",
      "new_mode": 33188,
      "new_path": "missing.h"
    },
    {
      "type": "modify",
      "old_id": "7c236c38c92d046021a7eafe61fa3218f6b57206",
      "old_mode": 33188,
      "old_path": "msg.c",
      "new_id": "99894569d06d4660618f6c897e034c95017be8b8",
      "new_mode": 33188,
      "new_path": "msg.c"
    },
    {
      "type": "modify",
      "old_id": "58c22878fa04f80e916c1cfc3942f8a89e0acfd4",
      "old_mode": 33188,
      "old_path": "msg.h",
      "new_id": "c53e07bbf8f6261be2a879983a98b288976f2962",
      "new_mode": 33188,
      "new_path": "msg.h"
    },
    {
      "type": "modify",
      "old_id": "c80923321a2c39f9bdaf70f427d29ee2ff8a8acb",
      "old_mode": 33188,
      "old_path": "raw.c",
      "new_id": "eb010725cbdd9acbb7f3388f6e68e8fb8ac79aac",
      "new_mode": 33188,
      "new_path": "raw.c"
    }
  ]
}
