protected void forward( Router source, long timestamp, DestinationPacket packet ) throws Exception {
		// Forward it!
		Neighbor nearest = null;
		Neighbor shortest = null;
		
		int longestContainingPrefix = 0;
		int shortestPrefix = 128;
		for( Neighbor n : source.neighbors ) {
			if( n.contains(packet.destAddress) && n.prefixLength > longestContainingPrefix ) {
				nearest = n;
				longestContainingPrefix = n.prefixLength;
			}
			if( n.prefixLength < shortestPrefix ) {
				shortestPrefix = n.prefixLength;
				shortest = n;
			}
		}
		
		Neighbor next = nearest != null ? nearest : shortest;
		
		if( next != null ) {
			TransmitterType tt = source.transmitterForChannel(next.channel);
			sendWireless( source, tt, next.macAddress, packet );
		}
	}