if(log.isErrorEnabled()) log.error("UnicastHeader type " + hdr.type + " not known !");
log.error("UnicastHeader type " + hdr.type + " not known !");
    public void up(Event evt) {        Message        msg;        Address        dst, src;        UnicastHeader  hdr;        switch(evt.getType()) {            case Event.MSG:                msg=(Message)evt.getArg();                dst=msg.getDest();                src=msg.getSrc();                if(dst == null || dst.isMulticastAddress())  // only handle unicast messages                    break;  // pass up                hdr=(UnicastHeader)msg.removeHeader(getName());		if(hdr == null) break;                switch(hdr.type) {                    case UnicastHeader.DATA:      // received regular message                        sendAck(src, hdr.seqno);                        handleDataReceived(src, hdr.seqno, hdr.first, msg);                        break;                    case UnicastHeader.DATA_ACK:  // received ACK for previously sent message                        handleAckReceived(src, hdr.seqno);                        break;                    default:                        if(log.isErrorEnabled()) log.error("UnicastHeader type " + hdr.type + " not known !");                        break;                }                return;            case Event.SET_LOCAL_ADDRESS:                local_addr=(Address)evt.getArg();                break;        }        passUp(evt);   // Pass up to the layer above us    }