{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":417073105,"defaultBranch":"main","name":"routecore","ownerLogin":"NLnetLabs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-10-14T09:42:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1895545?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719270306.0","currentOid":""},"activityList":{"items":[{"before":"893a441ee5be64fc7b01b6459fedaae3a15eaacf","after":"bae5b7f3e37e35a71831f23f60e2a2eb20e2cd17","ref":"refs/heads/rc1-additions","pushedAt":"2024-09-16T13:14:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"getters for AsPathLimitInfo","shortMessageHtmlLink":"getters for AsPathLimitInfo"}},{"before":"c584efb21a1dc6525041321b52c87bc5438c7429","after":"893a441ee5be64fc7b01b6459fedaae3a15eaacf","ref":"refs/heads/rc1-additions","pushedAt":"2024-07-26T10:24:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"to AS4 Path","shortMessageHtmlLink":"to AS4 Path"}},{"before":"431050afbc2ed5d75eb8a863ae9ba036ba295c28","after":"c584efb21a1dc6525041321b52c87bc5438c7429","ref":"refs/heads/rc1-additions","pushedAt":"2024-06-24T23:13:02.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"Merge branch 'bincode' into rc1-additions","shortMessageHtmlLink":"Merge branch 'bincode' into rc1-additions"}},{"before":null,"after":"431050afbc2ed5d75eb8a863ae9ba036ba295c28","ref":"refs/heads/rc1-additions","pushedAt":"2024-06-24T23:05:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"From one Oct type to another","shortMessageHtmlLink":"From one Oct type to another"}},{"before":"17cb8f73a52a58501ad4497fb75890f6cb32e133","after":"870230c6573bfb6a09044f60b7533830dae6196b","ref":"refs/heads/bincode","pushedAt":"2024-06-24T23:03:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"ok, impl Default","shortMessageHtmlLink":"ok, impl Default"}},{"before":"2a53fb793f8d78036a0fe150051609eb77e5d240","after":"17cb8f73a52a58501ad4497fb75890f6cb32e133","ref":"refs/heads/bincode","pushedAt":"2024-06-24T22:57:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"use github branch inetnum","shortMessageHtmlLink":"use github branch inetnum"}},{"before":"5593b057ee75a28c962d38430844402a5e0062f0","after":"2a53fb793f8d78036a0fe150051609eb77e5d240","ref":"refs/heads/bincode","pushedAt":"2024-06-24T22:56:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"use github branch inetnum","shortMessageHtmlLink":"use github branch inetnum"}},{"before":"9c2fcae892b6714165625c52b45be2526bfca68d","after":"5593b057ee75a28c962d38430844402a5e0062f0","ref":"refs/heads/bincode","pushedAt":"2024-06-24T22:53:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"use github branch inetnum","shortMessageHtmlLink":"use github branch inetnum"}},{"before":"38a7ca8b206e72d2ea705cbc466ed3ce09c013ba","after":"9c2fcae892b6714165625c52b45be2526bfca68d","ref":"refs/heads/bincode","pushedAt":"2024-06-12T13:27:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"behind feature flag","shortMessageHtmlLink":"behind feature flag"}},{"before":"334843d1e7d5a47206557bff2047cf84971d62dc","after":"38a7ca8b206e72d2ea705cbc466ed3ce09c013ba","ref":"refs/heads/bincode","pushedAt":"2024-06-12T10:14:53.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"Merge branch 'release-0.5.0-rc1' into bincode","shortMessageHtmlLink":"Merge branch 'release-0.5.0-rc1' into bincode"}},{"before":"bbc5face66ff51d75f00017f5921b8a0df843288","after":"334843d1e7d5a47206557bff2047cf84971d62dc","ref":"refs/heads/bincode","pushedAt":"2024-06-12T07:34:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"re-export inetnum stuff and more pub","shortMessageHtmlLink":"re-export inetnum stuff and more pub"}},{"before":"bbefe1766609f1a05a56b08a5f5b50948053b551","after":"e5fccafaec705b7992f24c833d363a4b3d16dafa","ref":"refs/heads/main","pushedAt":"2024-06-10T10:42:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Post release commit","shortMessageHtmlLink":"Post release commit"}},{"before":"ad05adf8ca477d0324da33c434d9f4c07da36740","after":"bbefe1766609f1a05a56b08a5f5b50948053b551","ref":"refs/heads/main","pushedAt":"2024-06-10T10:39:52.000Z","pushType":"pr_merge","commitsCount":10,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Merge pull request #58 from NLnetLabs/release-0.5.0-rc1\n\nReleased 2024-06-10.\r\n\r\nThis release features a lot of changes, big and small. The list below is not\r\nexhaustive but tries to highlight and describe the bigger (and perhaps, more\r\nimportant) ones.\r\n\r\n\r\nBreaking changes\r\n\r\n* Several common basic types (e.g. `Asn` and `Prefix`) are moved out of\r\n _routecore_ to the new _inetnum_ crate.\r\n\r\n* Refactor of PathAttributes\r\n\r\n The introduction of `PaMap` and `RouteWorkshop` (see below) required refactoring\r\n of the `PathAttributes` enum and related types. Most significantly, an entire\r\n layer in the enum was removed, changing how one matches on variants.\r\n Furthermore some of the types in those variants slightly changed.\r\n\r\n* Overhaul of address family related code\r\n\r\n The types describing address families, and related traits to parse and compose\r\n NLRI of such families, have severely changed. This eliminates any possible\r\n ambiguity regarding the address family of announcements/withdrawals in UPDATE\r\n messages at compile time.\r\n\r\n * Supported address families are now explicitly and exhaustively enumerated\r\n in the `AfiSafiType` enum. As a SAFI by itself does not carry much meaning,\r\n the separate `SAFI` enum is removed. Almost all of the code now works\r\n based on the more descriptive `AfiSafiType`.\r\n * ADD-PATH is now supported on all supported address families, i.e. the\r\n `AfiSafiType` includes `~AddPath` variants for every single AFI+SAFI\r\n combination.\r\n * This now allows for e.g. efficient iterators over NLRI that are generic\r\n over the `AfiSafiType`.\r\n But, as a possible downside, this moves the task of determining what\r\n address family a set of NLRI holds to the caller in order to then use the\r\n correctly typed iterator. The less efficient, 'easier to use' iterators\r\n returning an enum instead of a distinct NLRI type are therefore still\r\n available.\r\n\r\nNew\r\n\r\n* RouteWorkshop / PaMap\r\n\r\n This release introduces the `RouteWorkshop` to create UPDATE messages based on\r\n an NLRI and a set of attributes. For creation, inspection and manipulation of\r\n those attributes, the `PaMap` is introduced. These new types work in\r\n conjunction with the existing `UpdateBuilder`.\r\n\r\n* BGP FSM (absorbed from _rotonda-fsm_)\r\n\r\n _routecore_ now contains the code to enable for actual BGP sessions, i.e. the\r\n BGP FSM and related machinery. By pulling this in into _routecore_ allows for\r\n less dependency juggling, easier development iterations and more sensible code\r\n in all parts. All of this has some rough edges and is prone to changes on the\r\n near future.\r\n\r\n The _rotonda-fsm_ crate for now is left as-is.\r\n\r\n\r\n* Route Selection fundamentals\r\n\r\n This release introduces a first attempt at providing handles to perform the\r\n BGP Decision Process as described in RFC4271, colloquially known as 'route\r\n selection' or 'best path selection'.\r\n\r\n Most of the heavy-lifting for this comes from implementing `Ord` on a wrapper\r\n struct holding a 'route' (i.e., `PaMap`) and additional information to allow\r\n tie-breaking as described in the RFC.\r\n\r\n As the tie-breaking in RFC4271 is actually broken and not totally ordered, we\r\n aim to provide a certain degree of flexibility in the tie-breaking process by\r\n means of different `OrdStrat` ordering strategies.\r\n\r\n\r\nOther changes\r\n\r\n* Feature flags\r\n\r\n After splitting of parts of _routecore_ into the _inetnum_ crate, the default\r\n features set resulted in an almost empty library. Therefore the `bgp` flag is\r\n now on by default, and we introduced an `fsm` flag to enable the BGP FSM code\r\n absorbed from _rotonda-fsm_.\r\n\r\n\r\nKnown limitations\r\n\r\n* Constructed UPDATE messages are MultiProtocol-only\r\n\r\n With regards to announcing and withdrawing NLRI, the `UpdateBuilder` is currently\r\n limited to putting everything in the MultiProtocol path attributes\r\n (MP_REACH_NLRI, MP_UNREACH_NLRI), so even for IPv4 Unicast.\r\n\r\n Note that this behaviour is considered preferable as it leads to somewhat more\r\n flexibility/resilience on the protocol level. But in case one of the peers\r\n does not signal the capability of doing IPv4 Unicast in MultiProtocol\r\n attributes, we should allow creation of PDUs in the traditional form anyway,\r\n so we plan to reintroduce this functionality.","shortMessageHtmlLink":"Merge pull request #58 from NLnetLabs/release-0.5.0-rc1"}},{"before":"40d6a48bca2adac48fc1469bf4eaf0bf1092567f","after":"909ba272914bc5b362713fb03956b3d519657006","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-10T10:30:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Update Cargo.toml and Changelog for rc1 release","shortMessageHtmlLink":"Update Cargo.toml and Changelog for rc1 release"}},{"before":"dac6774f824a2eca58d5b159213c25e5afda6e68","after":"bbc5face66ff51d75f00017f5921b8a0df843288","ref":"refs/heads/bincode","pushedAt":"2024-06-08T12:51:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"Fix bincode for Nlri","shortMessageHtmlLink":"Fix bincode for Nlri"}},{"before":null,"after":"dac6774f824a2eca58d5b159213c25e5afda6e68","ref":"refs/heads/bincode","pushedAt":"2024-06-08T06:11:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"density215","name":"Jasper den Hertog","path":"/density215","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/986937?s=80&v=4"},"commit":{"message":"Add bincode derives","shortMessageHtmlLink":"Add bincode derives"}},{"before":"efb50632e24b49133351435151554773b5be975b","after":"40d6a48bca2adac48fc1469bf4eaf0bf1092567f","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-06T15:36:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"More touching up, refactoring and documenting of path_selection helpers","shortMessageHtmlLink":"More touching up, refactoring and documenting of path_selection helpers"}},{"before":"2d279a24f66a7d6ab4ed43d344b9483ed1a1c157","after":"efb50632e24b49133351435151554773b5be975b","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-06T12:42:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Add best_backup_generic helper in path_selection","shortMessageHtmlLink":"Add best_backup_generic helper in path_selection"}},{"before":"44d8b36d1e29dbeb179cdd0901268b59eebef8a2","after":"2d279a24f66a7d6ab4ed43d344b9483ed1a1c157","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-05T09:35:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"WIP path selection fixes, fuzzing and documentation\n\nThis commit changes the bounds on the path selection helper methods\n`best` and `best_backup` to ensure we have access to the actual OrdRoute\ncontents. Those are necessary for comparison of the actual route\ncontents (path attributes, additional tiebreaker info), specifically in\n`best_backup`. Before, those methods would take the more generic `T:\nOrd`, but we need to make sure any returned backup route is actually\ndifferent from the returned best route, hence the need to access the\ninner values of OrdRoute.","shortMessageHtmlLink":"WIP path selection fixes, fuzzing and documentation"}},{"before":"a8413445c227fa0b22751eee4a65fedf4f6c6143","after":"44d8b36d1e29dbeb179cdd0901268b59eebef8a2","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-04T12:58:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Add constructor for TieBreakerInfo","shortMessageHtmlLink":"Add constructor for TieBreakerInfo"}},{"before":"84a9cd3f5b2205a670615c7d6feb36f89f3fa252","after":"a8413445c227fa0b22751eee4a65fedf4f6c6143","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-06-03T14:10:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Make fn best_backup generic, and fix a bug in it","shortMessageHtmlLink":"Make fn best_backup generic, and fix a bug in it"}},{"before":"22dd7dc3f70de941237fcf2e307f0bb057f05714","after":"84a9cd3f5b2205a670615c7d6feb36f89f3fa252","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-05-30T11:38:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Typos and text changes in Changelog","shortMessageHtmlLink":"Typos and text changes in Changelog"}},{"before":"912436debb8b981bfffc5a9f1ca486b729cc5b61","after":"22dd7dc3f70de941237fcf2e307f0bb057f05714","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-05-30T09:44:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Fix typo in Changelog","shortMessageHtmlLink":"Fix typo in Changelog"}},{"before":null,"after":"912436debb8b981bfffc5a9f1ca486b729cc5b61","ref":"refs/heads/release-0.5.0-rc1","pushedAt":"2024-05-30T09:43:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Update Changelog","shortMessageHtmlLink":"Update Changelog"}},{"before":"25887be0593c45c694dde2cd766ef2b2806715c2","after":"ad05adf8ca477d0324da33c434d9f4c07da36740","ref":"refs/heads/main","pushedAt":"2024-05-29T13:09:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Bump version in Cargo.toml","shortMessageHtmlLink":"Bump version in Cargo.toml"}},{"before":"88336e40ab65c4057bd98c85a0380f7058913f44","after":"25887be0593c45c694dde2cd766ef2b2806715c2","ref":"refs/heads/main","pushedAt":"2024-05-29T13:03:07.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Merge pull request #57 from NLnetLabs/release-0.5.0-rc0\n\nRelease 0.5.0-rc0","shortMessageHtmlLink":"Merge pull request #57 from NLnetLabs/release-0.5.0-rc0"}},{"before":null,"after":"2395f38f4682b171b6c299c643682ac87e6446fc","ref":"refs/heads/release-0.5.0-rc0","pushedAt":"2024-05-29T12:54:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Update Cargo.toml and changelog","shortMessageHtmlLink":"Update Cargo.toml and changelog"}},{"before":"a90449abc88da250627a92ffd2a11757bf794bca","after":"88336e40ab65c4057bd98c85a0380f7058913f44","ref":"refs/heads/main","pushedAt":"2024-05-29T12:44:35.000Z","pushType":"pr_merge","commitsCount":162,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Merge pull request #56 from NLnetLabs/absorb-fsm\n\nMerge long-living absorb-fsm","shortMessageHtmlLink":"Merge pull request #56 from NLnetLabs/absorb-fsm"}},{"before":"bc2dd1d94160a939acbc097b8ff4131a414a9d21","after":"586ac6797ed8db765b730a0ce4f40373666cbd86","ref":"refs/heads/absorb-fsm","pushedAt":"2024-05-29T12:34:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Merge branch 'main' into absorb-fsm","shortMessageHtmlLink":"Merge branch 'main' into absorb-fsm"}},{"before":"84ef2c83e8c7f855bff66a985473f45a6b2c8b26","after":"bc2dd1d94160a939acbc097b8ff4131a414a9d21","ref":"refs/heads/absorb-fsm","pushedAt":"2024-05-29T12:15:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"DRiKE","name":"Luuk Hendriks","path":"/DRiKE","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/572898?s=80&v=4"},"commit":{"message":"Tweaks/additions to helpers on bgp::path_selection","shortMessageHtmlLink":"Tweaks/additions to helpers on bgp::path_selection"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEt3JcZAA","startCursor":null,"endCursor":null}},"title":"Activity ยท NLnetLabs/routecore"}