oxidecomputer / oxidecomputer/maghemite

TTL settings are broken for IPv6 peers

Open
#647 0 comments 0 reactions 1 assignee View on GitHub

@taspelund is already working on this.

Since Feb 26, 2026.

bgp Bug mgd
Dominant language
Rust
Stars
94
Forks
6
Avg merge
1d 8h
Merged PRs (30d)
12

Description

Configuring an IPv6 peer with --min-ttl (mgadm flag) doesn't actually result in the IPv6 hop limit field being updated on the wire, at least not on Illumos.

I believe there are two bugs here: one when setting the hop limit on the current socket (packets we send) and one when setting the minimum acceptable hop limit (packets we receive).

For the packets we receive, I think we are incorrectly calling setsockopt with IPPROTO_IP/IP_MINTTL when it should be IPPROTO_IPV6/IPV6_MINHOPCOUNT.

For the packets we send, we are just calling TcpStream.set_ttl() which eventually calls setsockopt with IPPROTO_IP/IP_TTL -- which is IPv4 specific. It doesn't look like there's a corresponding TcpStream method for the IPv6 hop limit, which means we'll probably need to call setsockopt with IPPROTO_IPV6/IPV6_UNICAST_HOPS

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.