google / google/gvisor

Support more advanced routing decisions

Open
#3,938 4 comments 0 reactions 0 assignees View on GitHub
area: networking type: enhancement
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

The current routing table an array of `tcpip.Route` is basic and supports simple use cases.
```
// Route is a row in the routing table. It specifies through which NIC (and
// gateway) sets of packets should be routed. A row is considered viable if the
// masked target address matches the destination address in the row.
type Route struct {
// Destination must contain the target address for this row to be viable.
Destination Subnet

// Gateway is the gateway to be used if this row is viable.
Gateway Address

// NIC is the id of the nic to be used if this row is viable.
NIC NICID
}
```

More advanced use cases such as what `ip route` supports can not be done with our current implementation. E.g., marking routes with MTUs or marking routesas unreachable, blackholes, prohibited, broadcast, local, onlink etc. More examples can be found in documentation for `ip route` (https://linux.die.net/man/8/ip).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.