code: func (s *Service) RemoveMapping(mapping *Mapping) {
  	s.mut.Lock()
  	defer s.mut.Unlock()
  	for i, existing := range s.mappings {
  		if existing == mapping {
  			mapping.clearAddresses()
  			last := len(s.mappings) - 1
  			s.mappings[i] = s.mappings[last]
  			s.mappings[last] = nil
  			s.mappings = s.mappings[:last]
  			return
  		}
  	}
  }
docs: // RemoveMapping does not actually remove the mapping from the IGD, it just
  // internally removes it which stops renewing the mapping. Also, it clears any
  // existing mapped addresses from the mapping, which as a result should cause
  // discovery to reannounce the new addresses.