code: func createIPVlan(containerIfName, parent, ipvlanMode string) (string, error) {
  	// Set the ipvlan mode. Default is bridge mode
  	mode, err := setIPVlanMode(ipvlanMode)
  	if err != nil {
  		return "", fmt.Errorf("Unsupported %s ipvlan mode: %v", ipvlanMode, err)
  	}
  	// verify the Docker host interface acting as the macvlan parent iface exists
  	if !parentExists(parent) {
  		return "", fmt.Errorf("the requested parent interface %s was not found on the Docker host", parent)
  	}
  	// Get the link for the master index (Example: the docker host eth iface)
  	parentLink, err := ns.NlHandle().LinkByName(parent)
  	if err != nil {
  		return "", fmt.Errorf("error occurred looking up the %s parent iface %s error: %s", ipvlanType, parent, err)
  	}
  	// Create an ipvlan link
  	ipvlan := &netlink.IPVlan{
  		LinkAttrs: netlink.LinkAttrs{
  			Name:        containerIfName,
  			ParentIndex: parentLink.Attrs().Index,
  		},
  		Mode: mode,
  	}
  	if err := ns.NlHandle().LinkAdd(ipvlan); err != nil {
  		// If a user creates a macvlan and ipvlan on same parent, only one slave iface can be active at a time.
  		return "", fmt.Errorf("failed to create the %s port: %v", ipvlanType, err)
  	}
  
  	return ipvlan.Attrs().Name, nil
  }
docs: // createIPVlan Create the ipvlan slave specifying the source name