code: def canonical_interface_name(interface, addl_name_map=None):
      
  
      name_map = {}
      name_map.update(base_interfaces)
      interface_type, interface_number = split_interface(interface)
  
      if isinstance(addl_name_map, dict):
          name_map.update(addl_name_map)
      # check in dict for mapping
      if name_map.get(interface_type):
          long_int = name_map.get(interface_type)
          return long_int + py23_compat.text_type(interface_number)
      # if nothing matched, return the original name
      else:
          return interface
docs: Function to return an interface's canonical name (fully expanded name).
  
      Use of explicit matches used to indicate a clear understanding on any potential
      match. Regex and other looser matching methods were not implmented to avoid false
      positive matches. As an example, it would make sense to do "[P|p][O|o]" which would
      incorrectly match PO = POS and Po = Port-channel, leading to a false positive, not
      easily troubleshot, found, or known.
  
      :param interface: The interface you are attempting to expand.
      :param addl_name_map (optional): A dict containing key/value pairs that updates
      the base mapping. Used if an OS has specific differences. e.g. {"Po": "PortChannel"} vs
      {"Po": "Port-Channel"}