code: func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo, options map[string]interface{}) error {
  	defer osl.InitOSContext()()
  
  	network, err := d.getNetwork(nid)
  	if err != nil {
  		return err
  	}
  
  	endpoint, err := network.getEndpoint(eid)
  	if err != nil {
  		return err
  	}
  
  	if endpoint == nil {
  		return EndpointNotFoundError(eid)
  	}
  
  	endpoint.containerConfig, err = parseContainerOptions(options)
  	if err != nil {
  		return err
  	}
  
  	iNames := jinfo.InterfaceName()
  	containerVethPrefix := defaultContainerVethPrefix
  	if network.config.ContainerIfacePrefix != "" {
  		containerVethPrefix = network.config.ContainerIfacePrefix
  	}
  	err = iNames.SetNames(endpoint.srcName, containerVethPrefix)
  	if err != nil {
  		return err
  	}
  
  	err = jinfo.SetGateway(network.bridge.gatewayIPv4)
  	if err != nil {
  		return err
  	}
  
  	err = jinfo.SetGatewayIPv6(network.bridge.gatewayIPv6)
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // Join method is invoked when a Sandbox is attached to an endpoint.