code: func ListenAndServeIfUnicast(interfaceName string, handler Handler, jobs chan job, ip net.IP, ctx context.Context) error {
  	iface, err := net.InterfaceByName(interfaceName)
  	if err != nil {
  		return err
  	}
  
  	p, err := UnicastOpen(ip, 67, interfaceName)
  	if err != nil {
  		return err
  	}
  	defer p.Close()
  
  	return ServeIf(iface.Index, p, handler, jobs, ctx)
  }
docs: // ListenAndServeIf listens on the UDP network address addr and then calls
  // Serve with handler to handle requests on incoming packets.
  // i.e. ListenAndServeIf("eth0",handler)