)]}'
{
  "log": [
    {
      "commit": "059ab82fda9b517feffc7df0d62f819f41920c51",
      "tree": "2e68ae8b4112e0976d4e3568654b333065e4dcf5",
      "parents": [
        "cc4b5f6302c8a02346bc3a74a2e1c0ce01e9246b"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 19:04:17 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 14:08:53 2024 +0800"
      },
      "message": "debug fix\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "cc4b5f6302c8a02346bc3a74a2e1c0ce01e9246b",
      "tree": "7e0486bfd9e7e4d416328f44b223795072287009",
      "parents": [
        "49278ef14412255a94b81d1cf533cdae0585d66e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 15:47:12 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "Revert \"selftests/bpf: Support nonblock for send_recv_data\"\n\nThis reverts commit 8fdb31d2697e665792906f97d8cd6a654891136f.\n"
    },
    {
      "commit": "49278ef14412255a94b81d1cf533cdae0585d66e",
      "tree": "7b2fa7c870f4b1df7d71325edd30c1a8293caf55",
      "parents": [
        "39d5ce64f2287c4d00d6ac0a5d86f465eaec813b"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 15:46:57 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "Revert \"mptcp: react scheduler when subflow events pop up\"\n\nThis reverts commit 66f4e87a4e68668fb69f206001997ae5477675d1.\n"
    },
    {
      "commit": "39d5ce64f2287c4d00d6ac0a5d86f465eaec813b",
      "tree": "2d55cebd0a69454ee4dd3e314073056b038f44b9",
      "parents": [
        "496972b8eab5063c7e9182a17f4ec27b45964efd"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 15:46:34 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "Revert \"mptcp: drop \u0027first\u0027 in __mptcp_subflow_push_pending\"\n\nThis reverts commit 9d5b4f8a5fc7951d7d347b72b391eaa7f97e3503.\n"
    },
    {
      "commit": "496972b8eab5063c7e9182a17f4ec27b45964efd",
      "tree": "faaafd02695a443b2d85ac658ba2f81bfa3646e5",
      "parents": [
        "d66529e879aa72c0727d514a7d04bbcfcb59128d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 15:46:15 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "Revert \"selftests/bpf: Add select for send_recv_data\"\n\nThis reverts commit 46d87af537f0d7cb26b9f113cec9fe7d9255f648.\n"
    },
    {
      "commit": "d66529e879aa72c0727d514a7d04bbcfcb59128d",
      "tree": "0eddc126a3d86e60dd95d56b7877254d78c40fbb",
      "parents": [
        "050801ed72ea7039402b8fe63ab6eef3cdaaf65b"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 12 10:58:12 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "selftests/bpf: Add select for send_recv_data\n\nSome tests, such as the MPTCP bpf tests, require send_recv_data helper\nto run in nonblock mode.\n\nThis patch adds nonblock support for send_recv_data(). Check if it is\ncurrently in nonblock mode, and if so, ignore EWOULDBLOCK to continue\nsending and receiving.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "050801ed72ea7039402b8fe63ab6eef3cdaaf65b",
      "tree": "faaafd02695a443b2d85ac658ba2f81bfa3646e5",
      "parents": [
        "f21374037b241db1d60ff6f13d01643bb8b692c1"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Mar 27 10:35:13 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:56 2024 +0800"
      },
      "message": "selftests/bpf: Add RUN_TCP_CA_TEST macro\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "f21374037b241db1d60ff6f13d01643bb8b692c1",
      "tree": "d292013acccb14cc34423f5d65d83bba24cd7a16",
      "parents": [
        "307afa08d378036b229c7aa16c6a46c66d6f7614"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang@kernel.org",
        "time": "Thu Mar 14 10:59:53 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "selftests: mptcp: add shellcheck.sh\n\nadd shellcheck.sh\n\nSigned-off-by: Geliang Tang \u003cgeliang@kernel.org\u003e\n"
    },
    {
      "commit": "307afa08d378036b229c7aa16c6a46c66d6f7614",
      "tree": "e6b4782561107a71bf6ba618e938abcabf22e25d",
      "parents": [
        "15e175ffbd63afdf62754079d80eedbdbe94fe4c"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Mar 12 14:07:35 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "mptcp: drop \u0027first\u0027 in __mptcp_subflow_push_pending\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "15e175ffbd63afdf62754079d80eedbdbe94fe4c",
      "tree": "e1e4830b5da78457cafdad2707ff4e509e2308c2",
      "parents": [
        "c8c249447284bc355fe3110b1a44da1ac87ecc97"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Mar 08 15:04:10 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "disable\u003dSC2030\n\nfix2\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "c8c249447284bc355fe3110b1a44da1ac87ecc97",
      "tree": "24ae1a294038d7f0dd06ef3d3cc5b6f76c6ee700",
      "parents": [
        "e55803eabf494286b038c5da7fe050ab2ac1af73"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang@kernel.org",
        "time": "Thu Jan 18 13:34:49 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "mptcp: retrans optimization\n\nscheduler: implement a \"opportunistic retransmission\"\n\nThe goal of the \"opportunistic retransmission\" is to quickly reinject\npackets when we notice the window has just been closed on one path, see\nthe section 4.2 of:\n\nhttps://www.usenix.org/system/files/conference/nsdi12/nsdi12-final125.pdf\n\nThis is implemented in mptcp.org, see mptcp_rcv_buf_optimization().\n\nWith the current API in the Upstream kernel, a new scheduler doesn\u0027t have\nthe ability to trigger a reinjection. Currently there are only hooks to\ninitiate reinjection when the MPTCP RTO fires.\n\nThe packet scheduler should be able to get more info:\n\n    not just when MPTCP cwnd close or the seq num has increased (max\nallowed MPTCP level seq num to be sent \u003d\u003d last ack + (...))\n    but also when there is a RTO at subflow level: maybe linked to\n\n    scheduler: react when subflow-level events pop up (ACK/RTO) #343\n\nNote that the packet scheduler never significantly queue more than what\nthe cwnd of a subflow would accept: currently, the in-kernel only accepts\nto queue up to the MPTCP level cwnd (a few more bytes due to round-up)\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/332\nSigned-off-by: Geliang Tang \u003cgeliang@kernel.org\u003e\n"
    },
    {
      "commit": "e55803eabf494286b038c5da7fe050ab2ac1af73",
      "tree": "11557a663609ec4429b6d66c4196378b0dceabed",
      "parents": [
        "043030da965d152f50ead9452f202c3807c439c4"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Sun Jun 25 20:33:56 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "selftests/bpf: Add bpf_stale scheduler \u0026 test\n\nThis patch implements the setting a subflow as stale/unstale in BPF MPTCP\nscheduler, named bpf_stale. The staled subflow id will be added into a\nmap in sk_storage.\n\nTwo helper mptcp_subflow_set_stale() and mptcp_subflow_clear_stale() are\nadded.\n\nIn this test, subflow 1 is set as stale in bpf_stale_data_init(). Each\nsubflow is checked whether it\u0027s a stale one in bpf_stale_get_subflow() to\nselect a unstale subflow to send data.\n\nThis patch adds the bpf_stale scheduler test: test_stale(). Use sysctl to\nset net.mptcp.scheduler to use this sched. Add two veth net devices to\nsimulate the multiple addresses case. Use \u0027ip mptcp endpoint\u0027 command to\nadd the new endpoint ADDR_2 to PM netlink. Send data and check bytes_sent\nof \u0027ss\u0027 output after it to make sure the data has been only sent on ADDR_1\nsince ADDR_2 is set as stale.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "043030da965d152f50ead9452f202c3807c439c4",
      "tree": "db75773b5419118275916d42470417de10c20e74",
      "parents": [
        "e1cc8ee71fb7b5c0a484f2896dcd275c99b9350a"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Thu Sep 21 11:45:38 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "Squash to \"selftests/bpf: Add bpf_burst scheduler\"\n\nUse bpf_mptcp_wnd_end and bpf_mptcp_snd_nxt.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "e1cc8ee71fb7b5c0a484f2896dcd275c99b9350a",
      "tree": "9928454d632a1fe8faeb5c722cfe1f8f23c9f23c",
      "parents": [
        "f362a877d5b22dfc258958cecb5874dd0945fb2d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Thu Sep 21 11:45:38 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:55 2024 +0800"
      },
      "message": "Squash to \"bpf: Export more bpf_burst related functions\"\n\nRename mptcp_wnd_end to bpf_mptcp_wnd_end. Add bpf_mptcp_snd_nxt.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "f362a877d5b22dfc258958cecb5874dd0945fb2d",
      "tree": "bb1b613f0f286beb9e60744e3147f7f41da17df8",
      "parents": [
        "02ac65c1550658a16058aafba9d8f9ba59fef1c7"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Feb 26 11:06:10 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "mptcp: add mptcp_snd_nxt helper\n\nDefine mptcp_snd_nxt() helper in protocol.h and use it in protocol.c and\noptions.c.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "02ac65c1550658a16058aafba9d8f9ba59fef1c7",
      "tree": "dd3c4f4c55eed76fc431039aa6863b4a44fc3cb1",
      "parents": [
        "63e65d92966261cf268ec979078e65972b5d3424"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Feb 26 11:05:12 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "mptcp: export mptcp_wnd_end helper\n\nThis patch moves mptcp_wnd_end() helper from protocol.c to protocol.h,\nand add \u0027static inline\u0027 prefix for it.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "63e65d92966261cf268ec979078e65972b5d3424",
      "tree": "50f223417b10df1799bbf385936310df0622864e",
      "parents": [
        "584ace4408c762c004d20dcfc025af3af4ab90df"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Nov 22 10:45:08 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "Squash to \"selftests/bpf: Add mptcp sched structs\"\n\nAdd data_init() interface.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "584ace4408c762c004d20dcfc025af3af4ab90df",
      "tree": "b4995f3d38909bd1bf6c48160f12f3ffe3a7ccd9",
      "parents": [
        "5474e86619b8ef45bd5ff6dadc600a0345bb4027"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Tue Nov 21 17:06:47 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "mptcp: add data_init interface for scheduler\n\nThis patch adds a new interface data_init() for struct mptcp_sched_ops.\nIt\u0027s a new callback to initiate optimisations.\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/344\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "5474e86619b8ef45bd5ff6dadc600a0345bb4027",
      "tree": "2700d4bc4d1c6464b33bf1697872934154a52a32",
      "parents": [
        "1d3fd15111fb102631e1c572f6fa8a631c115081"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Feb 26 11:03:17 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "selftests: mptcp: add userspace pm fullmesh tests\n\nThis patch adds fullmesh selftests for userspace pm both on server side\nand on client side. For the server side test, add two endpoints with\nfullmesh flag on ns2, then signal an address on ns1 by userspace PM to\ntrigger the fullmesh connections. For the client side test, just use\nuserspace PM to create multiple subflows to do the fullmesh connections.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "1d3fd15111fb102631e1c572f6fa8a631c115081",
      "tree": "838d16ed43a0fc431bda51e1cd770221d321a189",
      "parents": [
        "da42845c37a644ed94ddc65a3bd2abcc3bac6dbc"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Fri Sep 01 12:35:40 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "mptcp: add netlink pm addr entry refcount\n\nThis patch adds the refcount of address entry in netlink PM. Initiate\n\u0027refcont\u0027 of every address entry to 1.\n\nIncrease this refcount counter when a subflow connecting or an address\nsignaling in mptcp_pm_nl_add_addr_doit(), fill_local_addresses_vec() and\nmptcp_pm_create_subflow_or_signal_addr().\n\nDecrease it when deleting an address in mptcp_pm_nl_del_addr_doit().\nWhen the counter reaches 1, then free this entry.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "da42845c37a644ed94ddc65a3bd2abcc3bac6dbc",
      "tree": "daa3da3fe177931c7372f337075f3cde6880c547",
      "parents": [
        "4056723905258689031604a40375240a6f07c47e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Thu Nov 09 21:39:32 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:54 2024 +0800"
      },
      "message": "selftests: mptcp: join: simplify v4mapped_tests\n\nSome selftests for mptcp are very similar, only one or two lines are\ndifferent. So it\u0027s very suitable to use a for-loop to simplify and merge\nthese tests. This patch picks the 26 most similar tests from two pairs\nfor simplifying and merging.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "4056723905258689031604a40375240a6f07c47e",
      "tree": "a9d0db1c7fb7a3595ab72a13d7ea238c87acd28c",
      "parents": [
        "ad42bbf663a4d387729256abec985f69107ed27c"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 14:33:47 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "selftests: mptcp: join: simplify deny_join_id0_tests\n\nThe six join id0 tests can be divided into three groups in sequence,\nwith two tests in each one. Both tests in one group are similar, only\ndifferent namespaces used. So a for-loop can be used to simplify these\ntests.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "ad42bbf663a4d387729256abec985f69107ed27c",
      "tree": "14c9308f1e4f94c1d9810d5726b411786d5e618a",
      "parents": [
        "26cff47df98a0bd7dca3ee0405e1577920e30cf7"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@suse.com",
        "time": "Wed Aug 16 14:47:07 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "selftests: mptcp: join: simplify checksum_tests\n\nThe four checksum tests are similar, only one line is different. So\na for-loop can be used to simplify these tests.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@suse.com\u003e\n"
    },
    {
      "commit": "26cff47df98a0bd7dca3ee0405e1577920e30cf7",
      "tree": "80cf0bcf2280f9195843f97283c86d176f4c315c",
      "parents": [
        "4305298c942bcfb1a36f124721c686d891febada"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Feb 07 16:40:14 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "selftests/bpf: Test register_btf_id_dtor_kfuncs\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "4305298c942bcfb1a36f124721c686d891febada",
      "tree": "0400c6e6ea6267ab79868e75484311334fd2b0b6",
      "parents": [
        "f503299453580131805f19a03915cbfc491e5554"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Feb 26 11:19:20 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "selftests: mptcp: rm userspace addr with random order\n\nPreviously, when deleting a userspace address and subflow, it was necessary\nto follow the current order of deleting the address and then deleting the\nsubflow. With this series of changes, addresses and subflows can be deleted\nin any order. This patch uses random numbers to add this type of tests.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "f503299453580131805f19a03915cbfc491e5554",
      "tree": "800effa4a2372012b87d63cfb70bfb5710ca1af8",
      "parents": [
        "e9d21ca9961aed0225db86c727d85048975131c9"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@linux.dev",
        "time": "Fri Dec 08 18:14:38 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "mptcp: add userspace pm addr entry refcount\n\nThis patch adds the refcount of addree entry in userspace PM. Add a new\ncounter \u0027refcnt\u0027 in struct mptcp_pm_addr_entry, initiated to 1.\n\nIncrease this counter when an address is announced or a subflow is created\nin mptcp_pm_nl_announce_doit() and mptcp_pm_nl_subflow_create_doit(). And\ndecrease it when an address is removed or a subflow is closed in\nmptcp_pm_nl_remove_doit() and mptcp_userspace_pm_delete_local_addr(). If\nthe counter reaches to 1, free this entry.\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/403\nFixes: 24430f8bf516 (\"mptcp: add address into userspace pm list\")\nSigned-off-by: Geliang Tang \u003cgeliang.tang@linux.dev\u003e\n"
    },
    {
      "commit": "e9d21ca9961aed0225db86c727d85048975131c9",
      "tree": "702d35b8813269dfccd8288c5f5090ac571f4c90",
      "parents": [
        "95c88c69bf62fe7be14b1a8a8f60e90bbd3ed40a"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@linux.dev",
        "time": "Fri Dec 08 18:14:26 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "mptcp: dup an entry when removing it\n\nIn some cases, the address entry doesn\u0027t need to be freed. This patch dups\nan entry into the free_list to separate removing an address from freeing\nan entry, so that the refcount of address entry can be added later.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@linux.dev\u003e\n"
    },
    {
      "commit": "95c88c69bf62fe7be14b1a8a8f60e90bbd3ed40a",
      "tree": "d596419e6fafbd31285795d2bdf3b35714471efe",
      "parents": [
        "c85d9f7902674ba2b1cfe2f1cc9b825a371d91c6"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@linux.dev",
        "time": "Fri Dec 08 18:14:15 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "mptcp: drop addr_match and id_match\n\nThis patch uses the newly defined helper mptcp_userspace_pm_get_entry()\nin mptcp_userspace_pm_append_new_local_addr(), and drop local variables\naddr_match and id_match to simplify the code.\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@linux.dev\u003e\n"
    },
    {
      "commit": "c85d9f7902674ba2b1cfe2f1cc9b825a371d91c6",
      "tree": "4cd439485da7f871296bc78e096f669fd70fbc68",
      "parents": [
        "63ebae18fb45ca44ba2fcee8d423372d28331d0d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@linux.dev",
        "time": "Fri Dec 08 18:14:03 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:53 2024 +0800"
      },
      "message": "mptcp: add userspace_pm_get_entry helper\n\nThis patch adds a new helper mptcp_userspace_pm_get_entry() to find out\nthe address entry on the userspace_pm_local_addr_list through the given\naddress. Use this helper in mptcp_userspace_pm_delete_local_addr().\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@linux.dev\u003e\n"
    },
    {
      "commit": "63ebae18fb45ca44ba2fcee8d423372d28331d0d",
      "tree": "e120f10c4b9faf14d78a779c27c1a0979cae3a29",
      "parents": [
        "a1889c8f06ce4ab910b13217d53fa44846b9a5a5"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Feb 21 14:29:42 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests: mptcp: flush userspace addrs list\n\nThis patch adds a new helper userspace_pm_flush() to flush all addresses\nfor the userspace PM. Invoke it in userspace pm dump address and subflow\ntests. And use dump commands to check if the userspace pm local address\nlist is empty after addresses flushing.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "a1889c8f06ce4ab910b13217d53fa44846b9a5a5",
      "tree": "dd1f89330b769f04f302e7a93d9899fc908a7002",
      "parents": [
        "6149d0f9118ac779eaa1a025edf7db813106c1f4"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Mar 06 10:51:29 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "mptcp: react scheduler when subflow events pop up\n\nThe current packet scheduler will not react by queuing more packets if\nsome subflows only events are emitted, e.g. new TCP ACKs are received\nonly acking things at TCP-level but not at MPTCP level. The scheduler\nshould be called when such events happen.\n\nack_update_msk() is invoked when an ACK is received, so it\u0027s the right\nplace to call the scheduler by invoking __mptcp_check_push().\n\nmptcp_subflow_timeout() is implemented to call the scheduler when a\nsubflow timeout happens. But I\u0027m not sure where is the right place to\ninvoke it. I mean where is the right place when a RTO is fired. So I\ntemporarily do it in mptcp_worker().\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/343\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "6149d0f9118ac779eaa1a025edf7db813106c1f4",
      "tree": "7f2207ee22010d080f22c816a5d70d1795cc3672",
      "parents": [
        "bc5711064b790389b6995ea561d4ad9fb58eb151"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Mar 12 09:21:24 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests: mptcp: iperf mptcp tests\n\nMPTCPv1 protocol support has been added in iperf3 recently. This patch\nadd some tests for iperf3 to demonstrate the advantages of MPTCP over\nTCP in latency or packet loss situations.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "bc5711064b790389b6995ea561d4ad9fb58eb151",
      "tree": "6589bd34cd944b1f516e2e8a1decc6ae144591e5",
      "parents": [
        "eed371fb11b9c1c09f17a9efed7ce005930c7684"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Mar 12 09:21:24 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests: mptcp: add iperf check for check_tools\n\nMPTCPv1 protocol support has been added in iperf3 recently.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "eed371fb11b9c1c09f17a9efed7ce005930c7684",
      "tree": "86e4d7a735817882b8919c17fc21a84921e0dc34",
      "parents": [
        "6e9625fa5c826c88a5029a5b7e8985990a8523e7"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 08 15:41:43 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests/bpf: Support nonblock for send_recv_data\n\nSome tests, such as the MPTCP bpf tests, require send_recv_data helper\nto run in nonblock mode.\n\nThis patch adds nonblock support for send_recv_data(). Check if it is\ncurrently in nonblock mode, and if so, ignore EWOULDBLOCK to continue\nsending and receiving.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "6e9625fa5c826c88a5029a5b7e8985990a8523e7",
      "tree": "70197400dce8e9f54a83cb3f273c1d8f8b97dfab",
      "parents": [
        "be6f6db48871482101d4797897b7bd70cface146"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Mar 29 20:54:01 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests/bpf: Use make_sockaddr in ip_check_defrag\n\nThis patch uses public helper make_sockaddr() exported in network_helpers.h\ninstead of open-coding in test_bpf_ip_check_defrag_ok() in\nprog_tests/ip_check_defrag.c. This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "be6f6db48871482101d4797897b7bd70cface146",
      "tree": "2cc366d4ae82237dc7afa174aaff1bc9a9ea73fe",
      "parents": [
        "83b402a31416326e788c84e21c40259cbeb15972"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 16 15:38:13 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:52 2024 +0800"
      },
      "message": "selftests/bpf: Use make_sockaddr in test_sock\n\nThis patch uses public helper make_sockaddr() exported in network_helpers.h\ninstead of open-coding in bind_sock() in test_sock.c. This can avoid\nduplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "83b402a31416326e788c84e21c40259cbeb15972",
      "tree": "decdcd365698dd620e97644c6407e4c4ab6583c5",
      "parents": [
        "d60e6884b066d7d0703ba653ae5e9d2f708b22bd"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 16 17:27:09 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:51 2024 +0800"
      },
      "message": "selftests/bpf: Use make_sockaddr in sk_assign\n\nThis patch uses public helper make_sockaddr() exported in network_helpers.h\ninstead of open-coding it prepare_addr() in prog_tests/sk_assign.c. This\ncan avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "d60e6884b066d7d0703ba653ae5e9d2f708b22bd",
      "tree": "875082a65ab01fab7d47366e1cf185cce9c4f465",
      "parents": [
        "a234d8ee3a2be879866d0554927087d814467461"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 09:44:00 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:56:43 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in sk_lookup\n\nfix\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "a234d8ee3a2be879866d0554927087d814467461",
      "tree": "e35cf1d1f42c0da37392b1e1bb09847fdb124de5",
      "parents": [
        "f6b819429e96ef2e98d8ddf19a788529996e9f8d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 16 15:50:23 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:55:29 2024 +0800"
      },
      "message": "selftests/bpf: Use get_socket_local_port in sk_assign\n\nThis patch uses public helper get_socket_local_port() exported in\nnetwork_helpers.h instead of the local defined function get_port()\nin prog_tests/sk_assign.c. This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "f6b819429e96ef2e98d8ddf19a788529996e9f8d",
      "tree": "7cc9bb295eac6fbe2045b64f0ae7994051db1208",
      "parents": [
        "318f242707f2818895751b3a15537b54b2286af4"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 16 13:30:42 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:55:28 2024 +0800"
      },
      "message": "selftests/bpf: Drop get_port in test_tcp_check_syncookie\n\nFunction get_port() in test_tcp_check_syncookie_user.c becomes useless now,\ndrop it and all struct sockaddr variables in main() too.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "318f242707f2818895751b3a15537b54b2286af4",
      "tree": "d70eca7a17f87afc0a0291a9d081401a0731a851",
      "parents": [
        "ae6e646b1b7d2b6c490f91ad3106e44ec6e1c076"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:55:28 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_fd in test_tcp_check_syncookie\n\nThis patch uses public helper connect_to_fd() exported in network_helpers.h\ninstead of the local defined function connect_to_server() in\ntest_tcp_check_syncookie_user.c. This can avoid duplicate code.\n\nThen the arguments \"addr\" and \"len\" of run_test() become useless, drop them\ntoo.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "ae6e646b1b7d2b6c490f91ad3106e44ec6e1c076",
      "tree": "7fe5015c269246deabe9fe83f0eeda4c4c9f53f3",
      "parents": [
        "cd67ce9929dd68705d31a4c50d168aaf19878621"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 09:44:00 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 22 10:55:20 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_fd in sk_lookup\n\nfix\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "cd67ce9929dd68705d31a4c50d168aaf19878621",
      "tree": "fce96d6a91f914683432f30c292381c308c58da9",
      "parents": [
        "201017156652f7e03a98d6978cbbe4244b91e358"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_fd in sockopt_inherit\n\nThis patch uses public helper connect_to_fd() exported in network_helpers.h\ninstead of the local defined function connect_to_server() in\nprog_tests/sockopt_inherit.c. This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "201017156652f7e03a98d6978cbbe4244b91e358",
      "tree": "aa9cc0d7dc52b712845fe6ff4c5aaf3d856e1275",
      "parents": [
        "9be941bd792ad2c44c35b142e32ec7055e601f51"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Fri Apr 19 10:44:37 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in test_tcp_check_syncookie\n\nInclude network_helpers.h in test_tcp_check_syncookie_user.c, use\npublic helper start_server_addr() in it instead of the local defined\nfunction start_server(). This can avoid duplicate code.\n\nAdd a helper setsockopt_mode() to set IPV6_V6ONLY sockopt, and pass it\nto start_server_setsockopt().\n\nIn order to use functions defined in network_helpers.c, Makefile needs\nto be updated to avoid compilation errors.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "9be941bd792ad2c44c35b142e32ec7055e601f51",
      "tree": "b4b2cf91543526c293a9491dd963fa4ec9efbafc",
      "parents": [
        "16fa0894f6ccac217ceb1e69e87bb343c2154bc3"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 22:20:23 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in sockopt_inherit\n\nInclude network_helpers.h in prog_tests/sockopt_inherit.c, use public\nhelpers make_sockaddr() and start_server_opts() instead of the\nlocal defined function start_server(). This can avoid duplicate code.\n\nAdd a helper setsockopt_loop() to set SOL_CUSTOM sockopt looply, and\npass it to start_server_setsockopt().\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "16fa0894f6ccac217ceb1e69e87bb343c2154bc3",
      "tree": "8b9bf8b6d371103bef1c3b00bfa8c33add0d7504",
      "parents": [
        "beec38433e788567defbaafe91481e7bfe69976f"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Apr 10 14:54:44 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Add setsockopt for network_helper_opts\n\n__start_server() sets SO_REUSPORT through setsockopt() when the parameter\n\u0027reuseport\u0027 is set. This patch makes it more flexible by accepting a\nnetwork_helper_opts argument instead, and add setsockopt function\npointer, together with optval and optlen into struct network_helper_opts.\n\nThen the original start_reuseport_server() can be implemented by passing\nin a newly defined setsockopt_reuse() function pointer to __start_server().\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "beec38433e788567defbaafe91481e7bfe69976f",
      "tree": "5403e478f4f73195e21b2628a423cf1b3c3885c4",
      "parents": [
        "3096999b91cbf6a86e35aa5057551498edb5d510"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 19:58:13 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Drop start_server_proto helper\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "3096999b91cbf6a86e35aa5057551498edb5d510",
      "tree": "85f061770ac207515e9fb7c6498e781805d3d4b7",
      "parents": [
        "a42ac63db9364f65323cccbfce126e985f04f609"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 19:56:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Make start_mptcp_server static\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "a42ac63db9364f65323cccbfce126e985f04f609",
      "tree": "9ff6f827b7d214c26756fcc7d84ba3cc742d9225",
      "parents": [
        "e6c3af21da156bd07d0bc362e8fd38df072c133e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 12:51:55 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:37 2024 +0800"
      },
      "message": "selftests/bpf: Add opts argument for __start_server\n\n__start_server() sets SO_REUSPORT through setsockopt() when the parameter\n\u0027reuseport\u0027 is set. This patch makes it more flexible by accepting a\nnetwork_helper_opts argument instead, and add setsockopt function\npointer, together with optval and optlen into struct network_helper_opts.\n\nThen the original start_reuseport_server() can be implemented by passing\nin a newly defined setsockopt_reuse() function pointer to __start_server().\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "e6c3af21da156bd07d0bc362e8fd38df072c133e",
      "tree": "90560a5b113677852dad4dbd842146e5e52a1e0b",
      "parents": [
        "b9e6e810850800296c08015a972c0ae2920fc0d1"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Apr 17 10:43:29 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:28 2024 +0800"
      },
      "message": "Squash to \"selftests/bpf: Add bpf scheduler test\" 2 send_data\n\nDrop send_data, using send_recv_data instead.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "b9e6e810850800296c08015a972c0ae2920fc0d1",
      "tree": "857d825efe2c1cb3b1f257ff5806533ee34e2ec5",
      "parents": [
        "efd99a2f33964806f96c803469c8960df2f5fd81"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 16 15:29:08 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:26 2024 +0800"
      },
      "message": "selftests/bpf: Use make_sockaddr in test_sock_addr\n\nThis patch uses public helper make_sockaddr() exported in network_helpers.h\ninstead of the local defined function mk_sockaddr() in test_sock_addr.c.\nThis can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "efd99a2f33964806f96c803469c8960df2f5fd81",
      "tree": "2d621f1a6823b8f0c73b5401e125d7153eec715c",
      "parents": [
        "8833161fddf41d52f27ee17db33aea974049d80d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:26 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_addr in test_sock_addr\n\nThis patch uses public network helper connect_to_addr() exported in\nnetwork_helpers.h instead of the local defined function connect_to_server()\nin test_sock_addr.c. This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "8833161fddf41d52f27ee17db33aea974049d80d",
      "tree": "a90e346921e46a53ff0139356b403237ca0c0b36",
      "parents": [
        "949bfef13f1015e3988daa7f74c34e486510c937"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:26 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in test_sock_addr\n\nInclude network_helpers.h in test_sock_addr.c, use the newly added public\nhelper start_server_addr() instead of the local defined function\nstart_server(). This can avoid duplicate code.\n\nIn order to use functions defined in network_helpers.c in test_sock_addr.c,\nMakefile needs to be updated and \u003cLinux/err.h\u003e needs to be included in\nnetwork_helpers.h to avoid compilation errors.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "949bfef13f1015e3988daa7f74c34e486510c937",
      "tree": "2acc1f428412f9d4c0eb363392a0abb7f07b95f0",
      "parents": [
        "1f98b2fc4bf37e85c954f9dc9e470d65428a712f"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 16:37:02 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:26 2024 +0800"
      },
      "message": "selftests/bpf: Use log_err in open_netns/close_netns\n\nASSERT helpers defined in test_progs.h shouldn\u0027t be used in public\nfunctions like open_netns() and close_netns(). Since they depend on\ntest__fail() which defined in test_progs.c. Public functions may be\nused not only in test_progs.c, but in other tests like test_sock_addr.c\nin the next commit.\n\nThis patch uses log_err() to replace ASSERT helpers in open_netns()\nand close_netns() in network_helpers.c to decouple dependencies, then\nuses ASSERT_OK_PTR() to check the return values of all open_netns().\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "1f98b2fc4bf37e85c954f9dc9e470d65428a712f",
      "tree": "a3f638d98b4c808ca533129849cba2395d0677e9",
      "parents": [
        "5353a814e2f1453484a7fbeb731adf9175a92f97"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Thu Apr 18 09:51:34 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:27:25 2024 +0800"
      },
      "message": "selftests/bpf: Fix a fd leak in error paths in open_netns\n\nAs Martin mentioned in review comment, there is an existing bug that\norig_netns_fd will be leaked in the later \"goto fail;\" case after\nopen(\"/proc/self/ns/net\") in open_netns() in network_helpers.c. This\npatch adds \"close(token-\u003eorig_netns_fd);\" before \"free(token);\" to\nfix it.\n\nFixes: a30338840fa5 (\"selftests/bpf: Move open_netns() and close_netns() into network_helpers.c\")\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "5353a814e2f1453484a7fbeb731adf9175a92f97",
      "tree": "db69fac585d5713bf2630fffda982366cfe86e39",
      "parents": [
        "bcde05de79336dbbae4a60e28e46963715d69f31"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Wed Apr 03 16:08:21 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:15 2024 +0800"
      },
      "message": "selftests/bpf: Add F_SETFL for fcntl in test_sockmap\n\nIncorrect arguments are passed to fcntl() in test_sockmap.c when invoking\nit to set file status flags. If O_NONBLOCK is used as 2nd argument and\npassed into fcntl, -EINVAL will be returned (See do_fcntl() in fs/fcntl.c).\nThe correct approach is to use F_SETFL as 2nd argument, and O_NONBLOCK as\n3rd one.\n\nIn nonblock mode, if EWOULDBLOCK is received, continue receiving, otherwise\nsome subtests of test_sockmap fail.\n\nFixes: 16962b2404ac (\"bpf: sockmap, add selftests\")\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\n"
    },
    {
      "commit": "bcde05de79336dbbae4a60e28e46963715d69f31",
      "tree": "83b93382231ecd860f98ca7f093aad1ccc5b7afb",
      "parents": [
        "7c5a23ae6361a29081d88d1d4e2d96799ac4a9bf"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "geliang.tang@linux.dev",
        "time": "Thu Nov 30 19:47:11 2023 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:06 2024 +0800"
      },
      "message": "enable mptcp debug\n\nSigned-off-by: Geliang Tang \u003cgeliang.tang@linux.dev\u003e\n"
    },
    {
      "commit": "7c5a23ae6361a29081d88d1d4e2d96799ac4a9bf",
      "tree": "e164f8ec6cf8552630c47b3ce5b55d739745711e",
      "parents": [
        "1b8a382da08fd4f75739c8bb2654593d87c366f2"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:00 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_addr in sk_assign\n\nThis patch uses public helper connect_to_addr() exported in\nnetwork_helpers.h instead of the local defined function connect_to_server()\nin prog_tests/sk_assign.c. This can avoid duplicate code.\n\nThe code that sets SO_SNDTIMEO timeout as timeo_sec (3s) can be dropped,\nsince connect_to_addr() sets default timeout as 3s.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "1b8a382da08fd4f75739c8bb2654593d87c366f2",
      "tree": "a8530f6afd2696fa5dec0c5acbaf454b88ed8499",
      "parents": [
        "ed974bfa67790b0e69d5888d5a03109a863398f7"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:00 2024 +0800"
      },
      "message": "selftests/bpf: Use connect_to_addr in cls_redirect\n\nThis patch uses public helper connect_to_addr() exported in\nnetwork_helpers.h instead of the local defined function connect_to_server()\nin prog_tests/cls_redirect.c. This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "ed974bfa67790b0e69d5888d5a03109a863398f7",
      "tree": "48ad7a3cf0dbc2cde8db704540e9e2e554b46569",
      "parents": [
        "b26345ddb07a3894f304e73d2d3cc0b1460f6727"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 15 11:30:27 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:00 2024 +0800"
      },
      "message": "selftests/bpf: Update arguments of connect_to_addr\n\nMove the third argument \"int type\" of connect_to_addr() to the first one\nwhich is closer to how the socket syscall is doing it. And add a\nnetwork_helper_opts argument as the fourth one. Then change its usages in\nsock_addr.c too.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "b26345ddb07a3894f304e73d2d3cc0b1460f6727",
      "tree": "ea825932008e3118e77befd9739692fb3e175e0f",
      "parents": [
        "313fc113f7180daa672893fa77c2069c2f4433db"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:00 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in sk_assign\n\nInclude network_helpers.h in prog_tests/sk_assign.c, use the newly\nadded public helper start_server_addr() instead of the local defined\nfunction start_server(). This can avoid duplicate code.\n\nThe code that sets SO_RCVTIMEO timeout as timeo_sec (3s) can be dropped,\nsince start_server_addr() sets default timeout as 3s.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "313fc113f7180daa672893fa77c2069c2f4433db",
      "tree": "197033b02fc7f4d09ca93831820876695c1a9ef7",
      "parents": [
        "0592a34c420175cb2275bbd2002e1bbe7a802fb6"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 09 17:25:51 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:24:00 2024 +0800"
      },
      "message": "selftests/bpf: Use start_server_addr in cls_redirect\n\nInclude network_helpers.h in prog_tests/cls_redirect.c, use the newly\nadded public helper start_server_addr() instead of the local defined\nfunction start_server(). This can avoid duplicate code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "0592a34c420175cb2275bbd2002e1bbe7a802fb6",
      "tree": "f7c95a78420623e2514287f645bc24788476b95e",
      "parents": [
        "45c8168f22f776e8c669e556d1a8206da163f692"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Thu Apr 18 15:22:40 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Add start_server_addr helper\n\nIn order to pair up with connect_to_addr(), this patch adds a new helper\nstart_server_addr(), which is a wrapper of __start_server(). It accepts\nan argument \u0027addr\u0027 of \u0027struct sockaddr_storage\u0027 type instead of a string\ntype argument like start_server(), and a network_helper_opts argument as\nthe last one.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "45c8168f22f776e8c669e556d1a8206da163f692",
      "tree": "daf1c09f44988bab900fa98903ab7581070bb556",
      "parents": [
        "e61c3ec743280826c9b2df2a45cbececc7ff58df"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 08 09:13:03 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Fix umount cgroup2 error in test_sockmap\n\nThis patch fixes the following \"umount cgroup2\" error in test_sockmap.c:\n\n (cgroup_helpers.c:353: errno: Device or resource busy) umount cgroup2\n\nCgroup fd cg_fd should be closed before cleanup_cgroup_environment().\n\nFixes: 13a5f3ffd202 (\"bpf: Selftests, sockmap test prog run without setting cgroup\")\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nAcked-by: Yonghong Song \u003cyonghong.song@linux.dev\u003e\n"
    },
    {
      "commit": "e61c3ec743280826c9b2df2a45cbececc7ff58df",
      "tree": "8c5d4e62a3208717a50be5d78a7cf21a774931b7",
      "parents": [
        "8e00385f093b12ed5c840349eba15370714f1746"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Thu Apr 11 13:43:12 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Export send_recv_data helper\n\nThis patch extracts the code to send and receive data into a new\nhelper named send_recv_data() in network_helpers.c and export it\nin network_helpers.h.\n\nThis helper will be used for MPTCP BPF selftests.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nLink: https://lore.kernel.org/r/5231103be91fadcce3674a589542c63b6a5eedd4.1712813933.git.tanggeliang@kylinos.cn\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "8e00385f093b12ed5c840349eba15370714f1746",
      "tree": "de82c91b325b72dcca9d9b0f20b3514ca81c7533",
      "parents": [
        "f27a52a3fc7ebd377ff6762197931a153f2ee44e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Mar 30 13:18:06 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Add struct send_recv_arg\n\nAvoid setting total_bytes and stop as global variables, this patch adds\na new struct named send_recv_arg to pass arguments between threads. Put\nthese two variables together with fd into this struct and pass it to\nserver thread, so that server thread can access these two variables without\nsetting them as global ones.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "f27a52a3fc7ebd377ff6762197931a153f2ee44e",
      "tree": "36e0f2da4882476bd814f0b9cb0e5c075d3a9eea",
      "parents": [
        "5d5a9beda9cbced5d04f999ee9e364c39c327edc"
      ],
      "author": {
        "name": "Tushar Vyavahare",
        "email": "tushar.vyavahare@intel.com",
        "time": "Tue Apr 02 11:45:26 2024 +0000"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Implement set_hw_ring_size function to configure interface ring size\n\nIntroduce a new function called set_hw_ring_size that allows for the\ndynamic configuration of the ring size within the interface.\n\nSigned-off-by: Tushar Vyavahare \u003ctushar.vyavahare@intel.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Magnus Karlsson \u003cmagnus.karlsson@intel.com\u003e\nLink: https://lore.kernel.org/bpf/20240402114529.545475-5-tushar.vyavahare@intel.com\n"
    },
    {
      "commit": "5d5a9beda9cbced5d04f999ee9e364c39c327edc",
      "tree": "fd6304384db5ec4314da24795d340071eae3ca8e",
      "parents": [
        "aaaf8e287bdbdc24dfc1003cfbf034968f8c5435"
      ],
      "author": {
        "name": "Tushar Vyavahare",
        "email": "tushar.vyavahare@intel.com",
        "time": "Tue Apr 02 11:45:25 2024 +0000"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/bpf: Implement get_hw_ring_size function to retrieve current and max interface size\n\nIntroduce a new function called get_hw_size that retrieves both the\ncurrent and maximum size of the interface and stores this information\nin the \u0027ethtool_ringparam\u0027 structure.\n\nRemove ethtool_channels struct from xdp_hw_metadata.c due to redefinition\nerror. Remove unused linux/if.h include from flow_dissector BPF test to\naddress CI pipeline failure.\n\nSigned-off-by: Tushar Vyavahare \u003ctushar.vyavahare@intel.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Magnus Karlsson \u003cmagnus.karlsson@intel.com\u003e\nLink: https://lore.kernel.org/bpf/20240402114529.545475-4-tushar.vyavahare@intel.com\n"
    },
    {
      "commit": "aaaf8e287bdbdc24dfc1003cfbf034968f8c5435",
      "tree": "54de518bbc007cc182c8740abd05ab77dcef2314",
      "parents": [
        "066357d557f0e5202c8c06f04a5750ee5f6c71ed"
      ],
      "author": {
        "name": "Tushar Vyavahare",
        "email": "tushar.vyavahare@intel.com",
        "time": "Tue Apr 02 11:45:24 2024 +0000"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:59 2024 +0800"
      },
      "message": "selftests/xsk: Make batch size variable\n\nConvert the constant BATCH_SIZE into a variable named batch_size to allow\ndynamic modification at runtime. This is required for the forthcoming\nchanges to support testing different hardware ring sizes.\n\nWhile running these tests, a bug was identified when the batch size is\nroughly the same as the NIC ring size. This has now been addressed by\nMaciej\u0027s fix in commit 913eda2b08cc (\"i40e: xsk: remove count_mask\").\n\nSigned-off-by: Tushar Vyavahare \u003ctushar.vyavahare@intel.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Magnus Karlsson \u003cmagnus.karlsson@intel.com\u003e\nLink: https://lore.kernel.org/bpf/20240402114529.545475-3-tushar.vyavahare@intel.com\n"
    },
    {
      "commit": "066357d557f0e5202c8c06f04a5750ee5f6c71ed",
      "tree": "dcfa58a8a2c0f80d5d9839bd3e8c0f510d055826",
      "parents": [
        "7f88de31a64fb954a1a2aa164c51a1cd059a5444"
      ],
      "author": {
        "name": "Tushar Vyavahare",
        "email": "tushar.vyavahare@intel.com",
        "time": "Tue Apr 02 11:45:23 2024 +0000"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sun Apr 21 20:23:58 2024 +0800"
      },
      "message": "tools: Add ethtool.h header to tooling infra\n\nThis commit duplicates the ethtool.h file from the include/uapi/linux\ndirectory in the kernel source to the tools/include/uapi/linux directory.\n\nThis action ensures that the ethtool.h file used in the tools directory\nis in sync with the kernel\u0027s version, maintaining consistency across the\ncodebase.\n\nThere are some checkpatch warnings in this file that could be cleaned up,\nbut I preferred to move it over as-is for now to avoid disrupting the code.\n\nSigned-off-by: Tushar Vyavahare \u003ctushar.vyavahare@intel.com\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Magnus Karlsson \u003cmagnus.karlsson@intel.com\u003e\nLink: https://lore.kernel.org/bpf/20240402114529.545475-2-tushar.vyavahare@intel.com\n"
    },
    {
      "commit": "7f88de31a64fb954a1a2aa164c51a1cd059a5444",
      "tree": "d37449acbfa6873c2ea01e46528831ee84d6a16c",
      "parents": [
        "52828eced92baaed52e180c5975f96620255e9c0"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 06 21:36:41 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 19:21:25 2024 +0800"
      },
      "message": "Squash to \"selftests/bpf: Add bpf scheduler test\"\n\nUse endpoint_init in sched_init and use _ss_search in has_bytes_sent.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "52828eced92baaed52e180c5975f96620255e9c0",
      "tree": "d98c078a759289c54ec55075a1d0c453ccda94dc",
      "parents": [
        "c479600e938723857db1bba00c98c100c3852aca"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Tue Apr 02 15:24:22 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 19:21:25 2024 +0800"
      },
      "message": "selftests/bpf: Handle SIGINT when creating netns\n\nIt\u0027s necessary to delete netns during the MPTCP bpf tests interrupt,\notherwise the next tests run will fail due to unable to create netns.\n\nThis patch adds a new SIGINT handle sig_int, and deletes NS_TEST in it.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "c479600e938723857db1bba00c98c100c3852aca",
      "tree": "3f246c05d1684bcd1b5a936648757045212ab942",
      "parents": [
        "740fd7f056ea819f92729cf85f0c0dc66399bd7d"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Mon Apr 15 15:32:15 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 19:21:25 2024 +0800"
      },
      "message": "selftests/bpf: Add mptcp subflow subtest\n\nThis patch adds a subtest named test_subflow to load and verify the newly\nadded mptcp subflow example in test_mptcp. Add a helper endpoint_init()\nto add a new subflow endpoint. Add another helper ss_search() to verify the\nfwmark and congestion values set by mptcp_subflow prog using setsockopts.\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/76\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "740fd7f056ea819f92729cf85f0c0dc66399bd7d",
      "tree": "91c0420082ecd2977a08abd5c93b8a3b72a9e884",
      "parents": [
        "a88811d78b1ef79079501a657e89f7ef1320d77d"
      ],
      "author": {
        "name": "Nicolas Rybowski",
        "email": "nicolas.rybowski@tessares.net",
        "time": "Mon Apr 15 17:26:46 2024 +0800"
      },
      "committer": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 19:20:50 2024 +0800"
      },
      "message": "selftests/bpf: Add mptcp subflow example\n\nMove Nicolas\u0027s patch into bpf selftests directory. This example added a\ntest that was adding a different mark (SO_MARK) on each subflow, and\nchanging the TCP CC only on the first subflow.\n\nThis example shows how it is possible to:\n\n    Identify the parent msk of an MPTCP subflow.\n    Put different sockopt for each subflow of a same MPTCP connection.\n\nHere especially, we implemented two different behaviours:\n\n    A socket mark (SOL_SOCKET SO_MARK) is put on each subflow of a same\n    MPTCP connection. The order of creation of the current subflow defines\n    its mark. The TCP CC algorithm of the very first subflow of an MPTCP\n    connection is set to \"reno\".\n\nThe code comes from\n\n    commit 4d120186e4d6 (\"bpf:examples: update mptcp_set_mark_kern.c\")\n\nin MPTCP repo https://github.com/multipath-tcp/mptcp_net-next (the\n\"scripts\" branch).\n\nCloses: https://github.com/multipath-tcp/mptcp_net-next/issues/76\nCo-developed-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nSigned-off-by: Nicolas Rybowski \u003cnicolas.rybowski@tessares.net\u003e\n"
    },
    {
      "commit": "a88811d78b1ef79079501a657e89f7ef1320d77d",
      "tree": "cfd136e0aaf8928c23617c47955d1462709ba832",
      "parents": [
        "8d8a026c39904f73e51b602e2a92e266673d78c6"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:21 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:21 2024 +0000"
      },
      "message": "DO-NOT-MERGE: mptcp: enabled by default\n\nThis commit is useful for automated builds, e.g. from Intel\u0027s kbuild.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "8d8a026c39904f73e51b602e2a92e266673d78c6",
      "tree": "0a8ad0c70d844c292f764a4fbb1ca3046f6f701b",
      "parents": [
        "7e141bf06346c5842efb083ad27d6cc605547c03"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:20 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:20 2024 +0000"
      },
      "message": "DO-NOT-MERGE: mptcp: improve code coverage for CI\n\ntcp: warn if tcp_done() is called on a closed socket\n\n  This is an extra check mainly for the CIs: to make sure we don\u0027t call\n  tcp_done() on an already closed socket as it happened in the past. If\n  we do such call, better to catch the error earlier.\n\nmptcp: warn in case of bogus mpc option on established client sk\n\n  As discussed on [1], an additional check is done to catch local\n  software bug.\n\n  This patch is supposed to land only in our tree, for both \u0027export\u0027 and\n  \u0027export-net\u0027 branches, because the warning could be triggered by\n  bugged / malicious peer. We want it in our tree for our CI to detect\n  internal bugs.\n\n  Link: https://lore.kernel.org/all/20240215-mptcp-fix-bogus-pr-warn-v1-1-d14c10312820@kernel.org/ [1]\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "7e141bf06346c5842efb083ad27d6cc605547c03",
      "tree": "d9db7f204b527f4bb8ba4aae01dc8f5a6f31c48b",
      "parents": [
        "866bf6c4a4d8b5138816b5a0e62e5e10c983c801"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:19 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:19 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: features other trees\n\nAll commits older than this one are non MPTCP-related features for any\ntree.\n\nFollowing commits are MPTCP-related modifications needed only for our\ntests suite.\n\nThis commit is useful to easily find where are non MPTCP-related\nfeatures for any tree.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "866bf6c4a4d8b5138816b5a0e62e5e10c983c801",
      "tree": "002d779bc3785cd516ef5c39e4f6e72288bb8c94",
      "parents": [
        "ccbf3b9a4f07829d1a358390677ca627c8363ae2"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:18 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:18 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf_burst scheduler \u0026 test\n\nThis patch implements the burst BPF MPTCP scheduler, named bpf_burst,\nwhich is the default scheduler in protocol.c. bpf_burst_get_send() uses\nthe same logic as mptcp_subflow_get_send() and bpf_burst_get_retrans\nuses the same logic as mptcp_subflow_get_retrans().\n\nUsing MPTCP_SCHED_TEST macro to add a new test for this bpf_burst\nscheduler, the arguments \"1 1\" means data has been sent on both net\ndevices. Run this test by RUN_MPTCP_TEST macro.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nReviewed-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "ccbf3b9a4f07829d1a358390677ca627c8363ae2",
      "tree": "f70080f214d95c06f50b3599d35e255a3d213785",
      "parents": [
        "7b6bbb36baed20e6f2fd24ae90041761e562f774"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:17 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:17 2024 +0000"
      },
      "message": "bpf: Export more bpf_burst related functions\n\nsk_stream_memory_free() and tcp_rtx_and_write_queues_empty() are needed\nto export into the BPF context for bpf_burst scheduler. But these two\nfunctions are inline ones. So this patch added two wrappers for them,\nand export the wrappers in the BPF context.\n\nAdd more bpf_burst related functions into bpf_mptcp_sched_kfunc_set to make\nsure these helpers can be accessed from the BPF context.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\n"
    },
    {
      "commit": "7b6bbb36baed20e6f2fd24ae90041761e562f774",
      "tree": "3ea973fb5b7a374a3c49bbace7b74375e8523ea6",
      "parents": [
        "88c98e672248ac9210f7d8e5619ac5978dbee074"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:16 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:16 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf_red scheduler \u0026 test\n\nThis patch implements the redundant BPF MPTCP scheduler, named bpf_red,\nwhich sends all packets redundantly on all available subflows.\n\nUsing MPTCP_SCHED_TEST macro to add a new test for this bpf_red\nscheduler, the arguments \"1 1\" means data has been sent on both\nnet devices. Run this test by RUN_MPTCP_TEST macro.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nReviewed-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "88c98e672248ac9210f7d8e5619ac5978dbee074",
      "tree": "6df3b3889bea76170fc900217a5ef58619dd5a48",
      "parents": [
        "e6ac58e01630d64992e56cac58d3d2efbfc4023a"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:15 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:15 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf_rr scheduler \u0026 test\n\nThis patch implements the round-robin BPF MPTCP scheduler, named bpf_rr,\nwhich always picks the next available subflow to send data. If no such\nnext subflow available, picks the first one.\n\nUsing MPTCP_SCHED_TEST macro to add a new test for this bpf_rr\nscheduler, the arguments \"1 1\" means data has been sent on both net\ndevices. Run this test by RUN_MPTCP_TEST macro.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nReviewed-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "e6ac58e01630d64992e56cac58d3d2efbfc4023a",
      "tree": "08d7e67f03bf1f5419119f8ad68029ca162e50bb",
      "parents": [
        "1de51b2e071211dec56779d1eba21328fc308747"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:14 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:14 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf_bkup scheduler \u0026 test\n\nThis patch implements the backup flag test scheduler, named bpf_bkup,\nwhich picks the first non-backup subflow to send data.\n\nUsing MPTCP_SCHED_TEST macro to add a new test for this bpf_bkup\nscheduler, the arguments \"1 0\" means data has been only sent on the\nfirst subflow ADDR1. Run this test by RUN_MPTCP_TEST macro.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nReviewed-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "1de51b2e071211dec56779d1eba21328fc308747",
      "tree": "cc193c89423b5f63f999c6e79630c38fc31b5004",
      "parents": [
        "8ffe0473482359819d22ad680afb674a7ebeeafa"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:13 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:13 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf_first scheduler \u0026 test\n\nThis patch implements the simplest MPTCP scheduler, named bpf_first,\nwhich always picks the first subflow to send data. It\u0027s a sample of\nMPTCP BPF scheduler implementations.\n\nThis patch defines MPTCP_SCHED_TEST macro, a template for all scheduler\ntests. Every scheduler is identified by argument name, and use sysctl\nto set net.mptcp.scheduler as \"bpf_name\" to use this sched. Add two\nveth net devices to simulate the multiple addresses case. Use \u0027ip mptcp\nendpoint\u0027 command to add the new endpoint ADDR2 to PM netlink. Arguments\naddr1/add2 means whether the data has been sent on the first/second\nsubflow or not. Send data and check bytes_sent of \u0027ss\u0027 output after it\nusing send_data_and_verify().\n\nUsing MPTCP_SCHED_TEST macro to add a new test for this bpf_first\nscheduler, the arguments \"1 0\" means data has been only sent on the\nfirst subflow ADDR1. Run this test by RUN_MPTCP_TEST macro.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nAcked-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nReviewed-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "8ffe0473482359819d22ad680afb674a7ebeeafa",
      "tree": "9780de9709f003260b0881b482cfe9ca0b1fb6af",
      "parents": [
        "07557b1a252901c403a2878d006e2bc47426331e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:12 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:12 2024 +0000"
      },
      "message": "selftests/bpf: Add bpf scheduler test\n\nThis patch extends the MPTCP test base to support MPTCP packet scheduler\ntests. Add a new test to use the default in-kernel scheduler.\n\nIn the new helper sched_init(), add two veth net devices to simulate the\nmultiple addresses case. Use \u0027ip mptcp endpoint\u0027 command to add the new\nendpoint ADDR_2 to PM netlink. Use sysctl to set net.mptcp.scheduler to\nuse the given sched.\n\nInvoke start_mptcp_server() to start the server on ADDR_1, and invoke\nconnect_to_fd() to connect with the server from the client. Then invoke\nsend_data() to send data.\n\nSome code in send_data() is from prog_tests/bpf_tcp_ca.c.\n\nAdd time metrics for BPF tests to compare the performance of each\nschedulers. Run prog_tests with \u0027-v\u0027 option can print out the running\ntime of each test.\n\nUse the new helper has_bytes_sent() to check the bytes_sent filed of \u0027ss\u0027\noutput after send_data() to make sure no data has been sent on ADDR_2.\nAll data has been sent on the first subflow.\n\nInvoke the new helper sched_cleanup() to set back net.mptcp.scheduler to\ndefault, flush all mptcp endpoints, and delete the veth net devices.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\n"
    },
    {
      "commit": "07557b1a252901c403a2878d006e2bc47426331e",
      "tree": "6f365936c4e7aae2bda9335c48b83c48a9a70ddc",
      "parents": [
        "66bd3925a057119da0b22f0a0290960367c08b51"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:11 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:11 2024 +0000"
      },
      "message": "selftests/bpf: Add mptcp sched structs\n\nThis patch adds three MPTCP scheduler structures: struct mptcp_sched_ops,\nstruct mptcp_sched_data and struct mptcp_subflow_context; and exports\nmptcp_subflow_set_scheduled() and mptcp_sched_data_set_contexts() helpers\nfor bpf selftests.\n\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "66bd3925a057119da0b22f0a0290960367c08b51",
      "tree": "717847c54008ddb7af9403015acd6cee006245b6",
      "parents": [
        "47ba1dc09be14699da4537fc663eb04eb0ea5030"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:10 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:10 2024 +0000"
      },
      "message": "selftests/bpf: Add RUN_MPTCP_TEST macro\n\nEach MPTCP subtest tests test__start_subtest(suffix), then invokes\ntest_suffix(). It makes sense to add a new macro RUN_MPTCP_TEST to\nsimpolify the code.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\n"
    },
    {
      "commit": "47ba1dc09be14699da4537fc663eb04eb0ea5030",
      "tree": "839032264a1d4238b9ecc436305566a4a057e103",
      "parents": [
        "354a9aa042fe41e4f84814d056c24824f6c90572"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:09 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:09 2024 +0000"
      },
      "message": "bpf: Add bpf_mptcp_sched_kfunc_set\n\nThis patch adds a new struct btf_kfunc_id_set for MPTCP scheduler. Add\nmptcp_subflow_set_scheduled() and mptcp_sched_data_set_contexts() helpers\ninto this id_set, and register it in bpf_mptcp_kfunc_init() to make sure\nthese helpers can be accessed from the BPF context.\n\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "354a9aa042fe41e4f84814d056c24824f6c90572",
      "tree": "3d95f50a18d3d454b3d5ccde897a2c1d29559b4b",
      "parents": [
        "726ca47fe6d0da34277c36ee249ff9c5973e7090"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:08 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:08 2024 +0000"
      },
      "message": "bpf: Add bpf_mptcp_sched_ops\n\nThis patch implements a new struct bpf_struct_ops: bpf_mptcp_sched_ops.\nRegister and unregister the bpf scheduler in .reg and .unreg.\n\nAdd write access for the scheduled flag of struct mptcp_subflow_context\nin .btf_struct_access.\n\nThis MPTCP BPF scheduler implementation is similar to BPF TCP CC. And\nnet/ipv4/bpf_tcp_ca.c is a frame of reference for this patch.\n\nAcked-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\nCo-developed-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "726ca47fe6d0da34277c36ee249ff9c5973e7090",
      "tree": "779b5b06fa7f1fa966f48cdb87be1b6021b77ab8",
      "parents": [
        "29842a74d0cf6be34a6f84d4bf4b2b1ded7d0e17"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:07 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:07 2024 +0000"
      },
      "message": "mptcp: add sched_data helpers\n\nAdd a new helper mptcp_sched_data_set_contexts() to set the subflow\npointers array in struct mptcp_sched_data. Add a new helper\nmptcp_subflow_ctx_by_pos() to get the given pos subflow from the\ncontexts array in struct mptcp_sched_data. They will be invoked by\nthe BPF schedulers to export the subflow pointers to the BPF contexts.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nReviewed-by: Mat Martineau \u003cmartineau@kernel.org\u003e\n"
    },
    {
      "commit": "29842a74d0cf6be34a6f84d4bf4b2b1ded7d0e17",
      "tree": "784014c817e99f7e55d5ba27be0302f801c4c384",
      "parents": [
        "bdf4fa5589aa4496558c2bc5d6a9c438fda07de1"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:06 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:06 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: features net-next-next\n\nAll commits older than this one are MPTCP-related features for net-next\ntree after the next merge window.\n\nFollowing commits are non MPTCP-related features for any tree.\n\nThis commit is useful to easily find MPTCP-related features for the\nnet-next tree after the next merge window.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "bdf4fa5589aa4496558c2bc5d6a9c438fda07de1",
      "tree": "2f540e0ec90dd03fcbf5de25974feb2e29604bc5",
      "parents": [
        "8bc7f3adcaafb7ee61dd5affe60d1f5bf2bef215"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:05 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:05 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: features net-next\n\nAll commits older than this one are MPTCP-related features for net-next\ntree.\n\nFollowing commits are new MPTCP-related features for net-next tree after\nthe next merge window.\n\nThis commit is useful to easily find where are MPTCP-related features\nfor net-next tree.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "8bc7f3adcaafb7ee61dd5affe60d1f5bf2bef215",
      "tree": "d09932c51e87ba5c2375e3be2492f00e534076f2",
      "parents": [
        "f8eb9ff3e6dffdd8f3931904f612365ace6c00f3"
      ],
      "author": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:04 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:04 2024 +0000"
      },
      "message": "mptcp: sockopt: info: stop early if no buffer\n\nUp to recently, it has been recommended to use getsockopt(MPTCP_INFO) on\nan \u0027accept\u0027ed socket, for a server app to check if the client requested\nto use MPTCP.\n\nIn this case, the userspace app is only interested by the returned value\nof the getsocktop() call, and can then give 0 for the option length, and\nNULL for the buffer address. An easy optimisation is then to stop early,\nand avoid filling a local buffer -- which now requires two different\nlocks -- if it is not needed.\n\nNote that userspace apps should use getsockopt(SO_PROTOCOL) in such case\ninstead: it looks less like a workaround, and it works with any kernel\nversions, while the MPTCP_INFO method requires kernels \u003e\u003d v5.16.\n\nSigned-off-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "f8eb9ff3e6dffdd8f3931904f612365ace6c00f3",
      "tree": "88c66bcffcb7568fe0a15d4ca086fa87276595e8",
      "parents": [
        "eb8a649ba8f46b65c3bef582a1be4f07dc1ac8b2"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:03 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:03 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: fixes net-next\n\nAll commits older than this one are MPTCP-related fixes for net-next\ntree.\n\nFollowing commits are new MPTCP-related features for net-next tree.\n\nThis commit is useful to easily find where are MPTCP-related fixes for\nnet-next tree.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "eb8a649ba8f46b65c3bef582a1be4f07dc1ac8b2",
      "tree": "3edd815c0f0bf461cd51b647b3f49020b3c68ecb",
      "parents": [
        "e56ae09702a3d54319b90d11902800b3d39f5429"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:02 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:02 2024 +0000"
      },
      "message": "selftests/bpf: Add pid limit for mptcpify prog\n\nIn order to prevent mptcpify prog from affecting the running results\nof other BPF tests, a pid limit was added to restrict it from only\nmodifying its own program.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\nSuggested-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\n"
    },
    {
      "commit": "e56ae09702a3d54319b90d11902800b3d39f5429",
      "tree": "2a86b36f43c044904a441f37171099d530a2172f",
      "parents": [
        "c9ec28c0f79cdb32e233f81f0c18847b38efa73f"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:01 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:01 2024 +0000"
      },
      "message": "selftests/bpf: Drop settimeo in do_test\n\nsettimeo is invoked in start_server() and in connect_fd_to_fd() already,\nno need to invoke settimeo(lfd, 0) and settimeo(fd, 0) in do_test()\nanymore. This patch drops them.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "c9ec28c0f79cdb32e233f81f0c18847b38efa73f",
      "tree": "a2dfc31af4073997f2cfc8bc571f61961769f750",
      "parents": [
        "4bf9ebf9c067910ec77e8eabc2299bda62c2a51e"
      ],
      "author": {
        "name": "Geliang Tang",
        "email": "tanggeliang@kylinos.cn",
        "time": "Sat Apr 20 09:25:00 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:25:00 2024 +0000"
      },
      "message": "selftests/bpf: Use connect_fd_to_fd in bpf_tcp_ca\n\nTo simplify the code, use BPF selftests helper connect_fd_to_fd() in\nbpf_tcp_ca.c instead of open-coding it. This helper is defined in\nnetwork_helpers.c, and exported in network_helpers.h, which is already\nincluded in bpf_tcp_ca.c.\n\nSigned-off-by: Geliang Tang \u003ctanggeliang@kylinos.cn\u003e\n"
    },
    {
      "commit": "4bf9ebf9c067910ec77e8eabc2299bda62c2a51e",
      "tree": "0fb40a80a24742a973415385ea9b375239887d28",
      "parents": [
        "ce2075598a763a76daf610ca49b57f5f5a8ff5fb"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:59 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:59 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: net-next\n\nAll commits older than this one are from Netdev\u0027s net-next repo:\n\n  https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/\n\nFollowing commits are fixes for other trees than the net ones or\nimported from elsewhere. We should not send these commits to either -net\nor net-next.\n\nThis commit is useful to easily find the \"bottom of the tree\".\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "ce2075598a763a76daf610ca49b57f5f5a8ff5fb",
      "tree": "b1536b9416074901c0e2fc4b6034032a9d7a8162",
      "parents": [
        "8442f8ba269f8f7321fba47c4fd1dc22402d8975",
        "3e2c3a05edb1be8fd3a62f95cc7856ef13f58777"
      ],
      "author": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:59 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:59 2024 +0000"
      },
      "message": "TopGit-driven merge of branches:\n\nnet-next\nt/DO-NOT-MERGE-git-markup-end-common-net-net-next\n"
    },
    {
      "commit": "3e2c3a05edb1be8fd3a62f95cc7856ef13f58777",
      "tree": "05f27f07522dc8be5d4e3f0fe3f9ab6934fca6bf",
      "parents": [
        "fa64c1de70e7d8c89da1466bd3fa0597dbec780a"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:58 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:58 2024 +0000"
      },
      "message": "DO-NOT-MERGE: git markup: end common net net-next\n\nAll commits older than this one are patches that are needed for both the\n-net and the net-next trees.\n\nFollowing commits are MPTCP-related modifications only needed for -net.\n\nThis commit is useful to easily find where are commits needed for -net\nand net-next.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    },
    {
      "commit": "fa64c1de70e7d8c89da1466bd3fa0597dbec780a",
      "tree": "fea0011c5ded3b0d5906f8a05f890e0a124e3041",
      "parents": [
        "5e804122a4f854c5ddf4521693d514bce204eaef"
      ],
      "author": {
        "name": "Matthieu Baerts",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:57 2024 +0000"
      },
      "committer": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Apr 20 09:24:57 2024 +0000"
      },
      "message": "DO-NOT-MERGE: mptcp: add CI support\n\nCurrently supported:\n\n- Github Actions:\n  - build-validation: check different combinations of validation\n  - checkpatch: use checkpatch.pl to validate new commits\n  - notif: send notifications to the IRC channel and emails\n  - Update TopGit tree: sync with net and net-next and then override the\n    export branches.\n\n- Cirrus:\n  - Run tests in a KVM: selftests, kunit, packetdrill, etc.\n\nSigned-off-by: Matthieu Baerts \u003cmatttbe@kernel.org\u003e\n"
    }
  ],
  "next": "5e804122a4f854c5ddf4521693d514bce204eaef"
}
