)]}'
{
  "commit": "dfd65b9b9fe80d8ba3e4410d2dd0fe2c16303b6d",
  "tree": "f0831e2d08351e9af98630fbd673810b2b682655",
  "parents": [
    "8c9df7bbd0f977daaa5f1ae9b83a85ee5fa039a4"
  ],
  "author": {
    "name": "Willem de Bruijn",
    "email": "willemb@google.com",
    "time": "Mon Feb 22 16:52:41 2021 -0500"
  },
  "committer": {
    "name": "Oleksandr Tymoshenko",
    "email": "ovt@google.com",
    "time": "Fri Apr 30 20:33:49 2021 +0000"
  },
  "message": "gve: add optional metadata descriptor type GVE_TXD_MTD\n\nAllow drivers to pass metadata along with packet data to the device.\nIntroduce a new metadata descriptor type\n\n* GVE_TXD_MTD\n\nThis descriptor is optional. If present it immediate follows the\npacket descriptor and precedes the segment descriptor.\n\nThis descriptor may be repeated. Multiple metadata descriptors may\nfollow. There are no immediate uses for this, this is for future\nproofing. At present devices allow only 1 MTD descriptor.\n\nThe lower four bits of the type_flags field encode GVE_TXD_MTD.\nThe upper four bits of the type_flags field encodes a *sub*type.\n\nIntroduce one such metadata descriptor subtype\n\n* GVE_MTD_SUBTYPE_PATH\n\nThis shares path information with the device for network failure\ndiscovery and robust response:\n\nLinux derives ipv6 flowlabel and ECMP multipath from sk-\u003esk_txhash,\nand updates this field on error with sk_rethink_txhash. Allow the host\nstack to do the same. Pass the tx_hash value if set. Also communicate\nwhether the path hash is set, or more exactly, what its type is. Define\ntwo common types\n\n  GVE_MTD_PATH_HASH_NONE\n  GVE_MTD_PATH_HASH_L4\n\nConcrete examples of error conditions that are resolved are\nmentioned in the commits that add sk_rethink_txhash calls. Such as\ncommit 7788174e8726 (\"tcp: change IPv6 flow-label upon receiving\nspurious retransmission\").\n\nExperimental results mirror what the theory suggests: where IPv6\nFlowLabel is included in path selection (e.g., LAG/ECMP), flowlabel\nrotation on TCP timeout avoids the vast majority of TCP disconnects\nthat would otherwise have occurred during link failures in long-haul\nbackbones, when an alternative path is available.\n\nRotation can be applied to various bad connection signals, such as\ntimeouts and spurious retransmissions. In aggregate, such flow level\nsignals can help locate network issues. Define initial common states:\n\n  GVE_MTD_PATH_STATE_DEFAULT\n  GVE_MTD_PATH_STATE_TIMEOUT\n  GVE_MTD_PATH_STATE_CONGESTION\n  GVE_MTD_PATH_STATE_RETRANSMIT\n\nBUG\u003db/185177172\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dNone\nSOURCE\u003dGVNIC\n\nSigned-off-by: Willem de Bruijn \u003cwillemb@google.com\u003e\nChange-Id: I29bdc2369f9aa0b3d483c2547f145bf0c4b1c384\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/16034\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Roy Yang \u003croyyang@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "133c698baaa2f72ffeb4cc5a52a2a48ae9c2c787",
      "old_mode": 33188,
      "old_path": "drivers/net/ethernet/google/gve/gve.h",
      "new_id": "7cc649d29f7003e615851c11949dd8c7802d10ea",
      "new_mode": 33188,
      "new_path": "drivers/net/ethernet/google/gve/gve.h"
    },
    {
      "type": "modify",
      "old_id": "a7da364e81c8a812a17f8bb19307b5c70357c3d4",
      "old_mode": 33188,
      "old_path": "drivers/net/ethernet/google/gve/gve_desc.h",
      "new_id": "61d0c6621e773fc58d33318c572593d604800224",
      "new_mode": 33188,
      "new_path": "drivers/net/ethernet/google/gve/gve_desc.h"
    },
    {
      "type": "modify",
      "old_id": "b85b7a11cbd479261eda6dc7a4b5fa61051d0a20",
      "old_mode": 33188,
      "old_path": "drivers/net/ethernet/google/gve/gve_tx.c",
      "new_id": "17fc8b9364d9fd6d6a9c4bee5ad6bab0bc871f1c",
      "new_mode": 33188,
      "new_path": "drivers/net/ethernet/google/gve/gve_tx.c"
    }
  ]
}
