code: func (c *NeighborCondition) Evaluate(path *Path, options *PolicyOptions) bool {
  	if len(c.set.list) == 0 {
  		log.WithFields(log.Fields{
  			"Topic": "Policy",
  		}).Debug("NeighborList doesn't have elements")
  		return true
  	}
  
  	neighbor := path.GetSource().Address
  	if options != nil && options.Info != nil && options.Info.Address != nil {
  		neighbor = options.Info.Address
  	}
  
  	if neighbor == nil {
  		return false
  	}
  	result := false
  	for _, n := range c.set.list {
  		if n.Contains(neighbor) {
  			result = true
  			break
  		}
  	}
  
  	if c.option == MATCH_OPTION_INVERT {
  		result = !result
  	}
  
  	return result
  }
docs: // compare neighbor ipaddress of this condition and source address of path
  // and, subsequent comparisons are skipped if that matches the conditions.
  // If NeighborList's length is zero, return true.