GitHub - roggnetwork/rogg: A memory-safe, fast, programmable routing stack in Rust · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
roggnetwork
rogg
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>69 Commits<br>69 Commits
.github/workflows
.github/workflows
bgpgg
bgpgg
conf
conf
ggsh
ggsh
proto
proto
script
script
systests
systests
telemetry
telemetry
.gitignore
.gitignore
Cargo.lock
Cargo.lock
Cargo.toml
Cargo.toml
Cross.toml
Cross.toml
LICENSE
LICENSE
Makefile
Makefile
README.md
README.md
View all files
Repository files navigation
rogg
A memory-safe, fast, observable routing stack written in Rust. It runs AS4242423930 on dn42.
bgpgg - BGP (Border Gateway Protocol) daemon
ggsh - "gg shell" for managing rogg
Features
Observable. Native metrics as CloudWatch EMF, JSON, or Prometheus. No sidecar needed.
Programmable. A gRPC API for peers, routes, and policy.
Memory-safe. Written in Rust.
Operable. ggsh shows and configures state, with commit and rollback.
Get Started
Download the latest release for your platform.
/rogg--x86_64-linux.tar.gz<br>tar xzf rogg--x86_64-linux.tar.gz">curl -LO https://github.com/roggnetwork/rogg/releases/download/version>/rogg-version>-x86_64-linux.tar.gz<br>tar xzf rogg-version>-x86_64-linux.tar.gz
Create a config file:
# rogg.conf<br>service bgp {<br>asn 65000<br>router-id 1.1.1.1<br>listen-addr 0.0.0.0:17900
peer 192.168.1.1 {<br>remote-as 65001<br>port 17900
telemetry {<br>cloudwatch-emf {<br>namespace Rogg/Bgpgg<br>prometheus {<br>listen 0.0.0.0:9273<br>json {}
Start the daemon:
./bgpggd --config rogg.conf
Use ggsh to manage it:
show bgp summary<br>BGP router listening on 0.0.0.0:17900<br>RIB entries 1200, 2400 paths<br>Peers 2, 2 established
Neighbor AS MsgRcvd MsgSent State/PfxRcd<br>10.0.0.1 65001 4821 3200 Established
ggsh> show bgp routes<br>> 10.0.0.0/24<br>via 10.0.0.1 lp 100 path 65001 [best]
ggsh> exit">$ ggsh<br>ggsh> show bgp summary<br>BGP router listening on 0.0.0.0:17900<br>RIB entries 1200, 2400 paths<br>Peers 2, 2 established
Neighbor AS MsgRcvd MsgSent State/PfxRcd<br>10.0.0.1 65001 4821 3200 Established
ggsh> show bgp routes<br>> 10.0.0.0/24<br>via 10.0.0.1 lp 100 path 65001 [best]
ggsh> exit
For scripting: ggsh show bgp summary
Other Ways
Build from source:
make<br>./target/release/bgpggd --config rogg.conf<br>./target/release/ggsh
Or use Docker:
curl -LO https://raw.githubusercontent.com/roggnetwork/rogg/master/bgpgg/docker/docker-compose.yml<br>docker compose up -d<br>docker exec rogg1 ggsh show bgp summary
Docs
https://www.roggnetwork.com/doc
License
Apache 2.0.
About<br>A memory-safe, fast, programmable routing stack in Rust<br>www.roggnetwork.com<br>Topics<br>bgpnetworkingroggrouting<br>Resources<br>Readme<br>Apache-2.0 license<br>Activity<br>Custom properties<br>Stars<br>1 star<br>Watchers<br>1 watching<br>Forks<br>0 forks<br>Report repository
Releases
Contributors
Languages
You can’t perform that action at this time.