Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LocalResolver ¶
type LocalResolver struct {
// contains filtered or unexported fields
}
LocalResolver is responsible resolving the raddr of connections when they are local containers
func (*LocalResolver) LoadAddrs ¶
func (l *LocalResolver) LoadAddrs(containers []*containers.Container)
LoadAddrs generates a map of network addresses to container IDs
func (*LocalResolver) Resolve ¶
func (l *LocalResolver) Resolve(c *model.Connections)
Resolve binds container IDs to the Raddr of connections
An attempt is made to resolve as many local containers as possible.
First, we go over all connections resolving the laddr container using the pid to container map that we have. At the same time, the translated laddr is put into a lookup table (addr -> container id), qualifying the key in that table with the network namespace id if the address is loopback.
Second, we go over the connections again, this time resolving the raddr container id using the lookup table we built previously. Note that the translated raddr is *not* used for the lookup. For loopback addresses, lookup is qualified by the network namespace they are in.