{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":176275480,"defaultBranch":"master","name":"libmctp","ownerLogin":"openbmc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-03-18T12:06:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13670043?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715830255.0","currentOid":""},"activityList":{"items":[{"before":"133df7abbc8e689e7e958282227901fcdb2fe5d0","after":"b3de343e8b8952d337102df130a02dd13cce5b83","ref":"refs/heads/master","pushedAt":"2024-05-16T03:30:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"serial: Support Frame Check Sequence\n\nAccording to DSP0253, implementing frame check sequence via\ncrc-16-ccitt calculation. crc-16-ccitt implementation refer\nto RFC1662 Appendix C.\n\nTested:\nVerified on sending/receiving mctp packets with mctp-serial\nkernel driver.\n\nChange-Id: I8417d521589e9f40a0ca68596cdcfd061fd919cc\nSigned-off-by: John Chung ","shortMessageHtmlLink":"serial: Support Frame Check Sequence"}},{"before":"1fe5899eacb2f736766be07fe1a053784ed016b3","after":"133df7abbc8e689e7e958282227901fcdb2fe5d0","ref":"refs/heads/master","pushedAt":"2024-05-16T00:55:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"core: Allow to handle destination null and broadcast endpoint id\n\nmctp daemon might query endpoint (i.e., get endpoint id command)\nby physical addressed requests and set destination eid as 0.\n\nCurrent implementation will block handling destination null and\nbroadcast endpoint id for MCTP control message type.\n\nChange-Id: Ie17035f88a80649e848fab93159a23172de0a33a\nSigned-off-by: John Chung ","shortMessageHtmlLink":"core: Allow to handle destination null and broadcast endpoint id"}},{"before":"5c90129312a384af5e27fdf96f8e79981ff32fe5","after":"1fe5899eacb2f736766be07fe1a053784ed016b3","ref":"refs/heads/master","pushedAt":"2024-01-10T20:30:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"serial: Recover the state machine when a request's bytes are dropped\n\nToday we use the byte 0x7e to indicate serial framing flag and\nserial trailing flag as well. In cases, when a request fails\ndue to certain bytes getting dropped, the libmctp serial state\nmachine never recovers and all the subsequent requests fail.\nThis is happens because the serial trailing flag is same as the\nframing flag.\n\nAssuming an example packet\n\n7e 01 04 ff ff ff ff 85 72 7e\nwhere\n7e -> MCTP Serial Framing Flag\n01 -> MCTP Serial Revision\n04 -> Length of the Data bytes\nNext 4 bytes -> Data Bytes\n85 -> fcs1\n72 -> fcs2\n7e -> MCTP Serial Trailing Flag\n\nIf some bytes are dropped (say 1st 4 bytes 7e 01 04 ff) in hardware\nor on the requester driver, then the libmctp responder state machine\nwill catch this and drop all the packets until it gets the next MCTP\nSerial Framing Byte. However since the MCTP Serial Trailing byte of\nthe current request is also 0x7e, the state machine would assume this\nto be start of the packet for next request and will soon realize\nthat the next byte 0x7e (next request's MCTP Serial Framing Byte) is not\nMCTP_SERIAL_REVISION i.e. 0x01. So it will start dropping bytes\nfor the next request too.\n\nWe can recover from this scenario, as here the\nfailed request's trailer flag would take us to STATE_WAIT_REVISION,\nwhere we will receive 0x7e (next request's framing flag)\n\nTested:\nVerified the fix on a real scenario where bytes get dropped in\nUSB hardware. The state machine responds with failure for the\ncurrent request, but is able to process the next requests fine.\n\nChange-Id: I9d853876a9765671d0067df21aab006bcf116dbc\nSigned-off-by: Nikhil Namjoshi ","shortMessageHtmlLink":"serial: Recover the state machine when a request's bytes are dropped"}},{"before":"8003c71053b3e3597019d2b0a1cf1e1fa4df2d14","after":"5c90129312a384af5e27fdf96f8e79981ff32fe5","ref":"refs/heads/master","pushedAt":"2023-12-22T05:47:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"OWNERS: Update Andrew's preferred email\n\nWe're having some grief with non-preferred emails in Gerrit[1]. I now\nprefer project-related content goes to my work email address, so use my\nnon-preferred email to implement the switch.\n\n[1]: https://issues.gerritcodereview.com/issues/317345953\n\nChange-Id: I0127666566bfb8c59049c01a8a6f9015d00543f9\nSigned-off-by: Andrew Jeffery ","shortMessageHtmlLink":"OWNERS: Update Andrew's preferred email"}},{"before":"e915aad4408efd98e882de3f4512d4a3c8953bd4","after":"8003c71053b3e3597019d2b0a1cf1e1fa4df2d14","ref":"refs/heads/master","pushedAt":"2023-11-07T23:44:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"clang-format: copy latest and re-format\n\nCopy the latest .clang-format from the docs repository and reformat the\nrepository.\n\nChange-Id: I0660e9f3f0a6a54fc229e034191295a27ffd5c52\nSigned-off-by: Patrick Williams ","shortMessageHtmlLink":"clang-format: copy latest and re-format"}},{"before":"ca85ad868c7ee4a2313eae0ef04044d2a0e1035d","after":"e915aad4408efd98e882de3f4512d4a3c8953bd4","ref":"refs/heads/master","pushedAt":"2023-10-31T23:42:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"tests: undef NDEBUG in tests\n\nSo we can run tests even when compiled with -DNDEBUG\n\nChange-Id: Iebb8399409e2b0a5172529e08bcac188956fd925\nSigned-off-by: Rashmica Gupta ","shortMessageHtmlLink":"tests: undef NDEBUG in tests"}},{"before":"487b31e0ad502e41fba7e57e48779a56cb9c3062","after":"ca85ad868c7ee4a2313eae0ef04044d2a0e1035d","ref":"refs/heads/master","pushedAt":"2023-10-31T23:37:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"tests: bridge: Use unique names for bindings\n\nThis makes debugging easier.\n\nSigned-off-by: Rashmica Gupta \nChange-Id: I43d225434e0724244fef3faaf5ab95b7094cca84","shortMessageHtmlLink":"tests: bridge: Use unique names for bindings"}},{"before":"895083b592062ed75c3f2127191c2a1dcc3b85f8","after":"487b31e0ad502e41fba7e57e48779a56cb9c3062","ref":"refs/heads/master","pushedAt":"2023-10-31T23:34:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"core: Ensure mctp_pktbuf_alloc() initialises end-offset in-bounds\n\nSigned-off-by: Rashmica Gupta \nChange-Id: I423fea60fbc5a40e66761b3a66bf9b44c3a9bc84","shortMessageHtmlLink":"core: Ensure mctp_pktbuf_alloc() initialises end-offset in-bounds"}},{"before":"400766f94322a00981b012e714734cab0ed52e68","after":"895083b592062ed75c3f2127191c2a1dcc3b85f8","ref":"refs/heads/master","pushedAt":"2023-10-29T23:48:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"configure.ac: Run autoupdate\n\nDeal with the following warning:\n\n```\nconfigure.ac:25: warning: The macro `AC_HELP_STRING' is obsolete.\nconfigure.ac:25: You should run autoupdate.\n```\n\nChange-Id: Ia9f5431a9a4d6b5d204c6f6acd8eb71ab944505c\nSigned-off-by: Andrew Jeffery ","shortMessageHtmlLink":"configure.ac: Run autoupdate"}},{"before":"8803dc12a969480e2efc41677bef15196cb3b0b9","after":"400766f94322a00981b012e714734cab0ed52e68","ref":"refs/heads/master","pushedAt":"2023-10-05T00:43:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"astlpc: Provide KCS device path as a binding argument\n\nCurrently astlpc binding expects a '/dev/mctp0' device in the system\nfor the KCS communication. This device is a symbolic link to the\nreal '/dev/raw-kcsX' device, created by the udev rules populated by the\nbuild system.\nThis approach is not ideal since the build system populates udev rules\nfor the KCS3 and KCS4 channels simultaneously and for these channels\nonly. This means that there are some design limitations for the MCTP\ncommunication. It is only possible on KCS3 or KCS4 channel, and if one\nof these channels is used, the other one must be disabled.\nTo make design more flexible get rid of all the udev rules and provide\n'/dev/raw-kcsX' device path as an argument to the binding\ninitialization code.\n\nChange-Id: I505e44280636c83b59669b314f60279b371d0403\nSigned-off-by: Konstantin Aladyshev ","shortMessageHtmlLink":"astlpc: Provide KCS device path as a binding argument"}},{"before":"2a2a0f6fd83318cfc37f44a657c9490c6a58a03a","after":"8803dc12a969480e2efc41677bef15196cb3b0b9","ref":"refs/heads/master","pushedAt":"2023-09-14T06:44:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"gitignore: Don't ignore all '*.in' files\n\nCurrently .gitignore file contains the '*.in' pattern to ignore build\nfiles 'Makefile.in' and 'config.h.in'.\nBut this pattern shouldn't be used since the repository contains files\nlike 'libmctp.pc.in' or 'udev/rules.d/mctp0-raw-kcsX.rules.in'.\nTo solve the issue drop the '*.in' pattern from the ignore list and add\n'Makefile.in' and 'config.h.in' directly.\n\nChange-Id: Idfac893a6b5430b2492301ec633c9fc53059f503\nSigned-off-by: Konstantin Aladyshev ","shortMessageHtmlLink":"gitignore: Don't ignore all '*.in' files"}},{"before":"b7824b66b668bbda1f0bde49e25f8538ea9d2fa6","after":"2a2a0f6fd83318cfc37f44a657c9490c6a58a03a","ref":"refs/heads/master","pushedAt":"2023-08-29T05:27:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"serial: Initialize pkt_trailer for the binding\n\nCurrently the pkt_trailer for the binding is not initialized\nexplicitly. Fix typo to correct the issue.\n\nChange-Id: I2d3af589886fabd17aa8f7c432bf92cd923e0640\nSigned-off-by: Konstantin Aladyshev ","shortMessageHtmlLink":"serial: Initialize pkt_trailer for the binding"}},{"before":"8f58dca75a989941c67e18b9328b65ebff080785","after":"b7824b66b668bbda1f0bde49e25f8538ea9d2fa6","ref":"refs/heads/master","pushedAt":"2023-08-23T05:25:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"core: Fix use of wrong 'free' function\n\nThis memory was allocated using `__mctp_alloc` but mistakenly being free\nwith plain `free`, causing a potential heap corruption or crash if users\ndefine their own malloc hooks.\n\nSigned-off-by: Benjamin Gwin \nSigned-off-by: Andrew Jeffery \nChange-Id: I1d78f62098e5d9b57e58e4dd90c4841b2923300d","shortMessageHtmlLink":"core: Fix use of wrong 'free' function"}},{"before":"99b9d238bc163ffa82ecd0b704eb0489f4a86e32","after":"8f58dca75a989941c67e18b9328b65ebff080785","ref":"refs/heads/master","pushedAt":"2023-08-08T06:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"Remove Richard\n\nRichard has left the project and asked that I remove him from the OWNERS\nfile.\n\nChange-Id: I8eead098234788889bddd71a3a65cc57ea6004b0\nSigned-off-by: Jason M. Bills ","shortMessageHtmlLink":"Remove Richard"}},{"before":"4df106db7766a56d6db67556b0072295c2d5659d","after":"99b9d238bc163ffa82ecd0b704eb0489f4a86e32","ref":"refs/heads/master","pushedAt":"2023-06-26T05:51:14.499Z","pushType":"push","commitsCount":2,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"astlpc: Log changes to KCS status register\n\nBreak down what the current state of the interface is whenever it\nchanges.\n\nSigned-off-by: Andrew Jeffery \nChange-Id: Ic636f5cd471f35da7851da0e448e62417104cd3e","shortMessageHtmlLink":"astlpc: Log changes to KCS status register"}},{"before":"7f7fdc1dcb9b9f6eeabc27e76321f3584e031148","after":"4df106db7766a56d6db67556b0072295c2d5659d","ref":"refs/heads/master","pushedAt":"2023-05-22T01:19:49.137Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"astlpc: Add mctp_astlpc_tx_done() API\n\nAdd the mctp_astlpc_tx_done() API to help with packet transfer\nperformance when using the LPC binding with the Aspeed BMC. The goal\nof the API is to tell the caller that the Transmit buffer has been\nconsumed by the remote side, i.e. the Rx_complete command has been\nreceived locally. It can be helpful on the host side because of the\nway the Aspeed BMC implements the KCS devices.\n\nThe Aspeed BMC's KCS device doesn't provide an interrupt when the ODR\nregister is read by the remote client/host. To workaround it, the\nlinux KCS driver for Aspeed arms a timer to periodically check (every\n0.5 second in the current implementation) the state of the register\nand generate an \"Output Buffer Empty\" (OBE) event to wake up any\nclient on the BMC, for example the mctp-demux-daemon.\n\nTypically, the mctp-demux-daemon waits in the poll() system call and\nwakes up when it receives a packet. When it's coming from the LPC bus\nand KCS device, the remote writes a Tx_begin command in the IDR\nregister, which does generate an interrupt. To acknowledge the packet,\nthe mctp-demux-daemon writes a Tx_complete command in the ODR and can\nthen dispatch the request to the proper recipient (i.e. the PLDM\ndaemon). When it wants to send a message on the LPC bus, the\nmctp-demux-daemon needs to wait till the ODR register has been read by\nthe remote. Because we don't have an interrupt to know when that\nhappens, the mctp-demux-daemon waits in poll() and will be awaken when\nan OBE event is generated by a background thread processing the timer\ninterrupt. So when the mctp-demux-daemon enters poll() with something\nto send on the LPC bus, if the ODR is not available immediately, it\nwill only be sent after the timer fires. Which could take up to 0.5s\nwith the current driver implementation.\n\nSo when the host sends a PLDM request, it is therefore crucial, for\ngood performance, that it reads the Rx_complete command out of the ODR\nvery quickly when it's sending a MCTP packet as to free it and make\nsure the mctp-demux-daemon can send the reply immediately instead of\nhaving to wait in poll(). That's where the new mctp_astlpc_tx_done()\nhelps: immediately after sending a message, the host can call\nrepeatedly mctp_astlpc_poll() to read the KCS device status and read\nthe ODR as fast as possible and with the mctp_astlpc_tx_done() API, it\nknows when to stop. Pseudo code looks like this (ignoring that we\nshould timeout out of the loop after a while):\n\n mctp_message_tx()\n while (!mctp_astlpc_tx_done(astlpc)) {\n \t mctp_astlpc_poll(astlpc);\n }\n\nNote that the API, while generic, is (so far) only useful when called\nfrom a remote LPC endpoint.\n\nChange-Id: I5e6d62aa142fe97449ccf9c9a2ade3cf45d02bf6\nSigned-off-by: Frederic Barrat \nSigned-off-by: Andrew Jeffery ","shortMessageHtmlLink":"astlpc: Add mctp_astlpc_tx_done() API"}},{"before":"2608b2943b7751b6de3abf83cc16d83f913c1651","after":"7f7fdc1dcb9b9f6eeabc27e76321f3584e031148","ref":"refs/heads/master","pushedAt":"2023-05-15T00:21:12.719Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"clang-format: copy latest and re-format\n\nclang-format-16 has some backwards incompatible changes that require\nadditional settings for best compatibility and re-running the formatter.\nCopy the latest .clang-format from the docs repository and reformat the\nrepository.\n\nSigned-off-by: Andrew Jeffery \nChange-Id: Ic5b4c8584fafe5ebe3d01c1f685cab271dd9690b","shortMessageHtmlLink":"clang-format: copy latest and re-format"}},{"before":"45d1332818c13df182242a8cb80cbe9f983fd057","after":"2608b2943b7751b6de3abf83cc16d83f913c1651","ref":"refs/heads/master","pushedAt":"2023-04-01T05:55:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bradbishop","name":"Brad Bishop","path":"/bradbishop","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8423748?s=80&v=4"},"commit":{"message":"core: check for __mctp_alloc() failure in mctp_pktbuf_alloc()\n\nCheck for allocation failure in mctp_pktbuf_alloc(), as done\nelsewhere in the code.\n\nChange-Id: If3b6d84335d87f4d0ddef059910e63edab82a30e\nSigned-off-by: Pedro Martelletto \nSigned-off-by: Moritz Fischer ","shortMessageHtmlLink":"core: check for __mctp_alloc() failure in mctp_pktbuf_alloc()"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESyvdvAA","startCursor":null,"endCursor":null}},"title":"Activity ยท openbmc/libmctp"}