'Update given MacEntry
If there is IP info in the incoming packet, update the macEntry
accordingly. In the past we assumed a 1:1 mapping between MAC and IP
addresses, but removed that restriction later to accomodate cases
like virtual interfaces (1:n) and distributed packet rewriting (n:1)'

def updateIPInfo(self, pckt_srcip, macEntry, hasARP):

    if (pckt_srcip in macEntry.ipAddrs):
        ipEntry = macEntry.ipAddrs[pckt_srcip]
        ipEntry.refresh()
        log.debug('%s    already    has    IP    %s,    refreshing', str(macEntry), str(pckt_srcip))
    else:
        ipEntry = IpEntry(hasARP)
        macEntry.ipAddrs[pckt_srcip] = ipEntry
        log.info('Learned    %s    got    IP    %s', str(macEntry), str(pckt_srcip))
    if hasARP:
        ipEntry.pings.received()
