1 - Assuming we have three XBEEs, one is configured as a coordinater, XBEE1, and the others as router/end-devices, XBEE2 and XBEE3. If the coordinator is configured to send to XBEE3, by using DH and DL, but XBEE3 is not in its range but XBEE2 is in both of XBEE1 and XBEE2 ' s range. The message will be routed to XBEE3 through XBEE2, I know. But can XBEE2 change the content of the message or it only acts as a " Data Link" layer?
No, based on Digi's documentation, none of their devices can change a message targeted for a different device. In your example XBee1 sends, XBee2 forwards without looking at the payload data at all and XBee3 receives. As best I can tell, the fancy programmable XBees (more on these devices below) can't get at the forwarded paylod either.
2 - If I have 100 xbees let's say, and they all have the same PAN ID. However, for a certain situation, I want let's say XBEE 67 to send a message ONLY to the XBEEs in its range without them routing it to other xbees in the network. Can that be done? I'm thinking of giving each node a node identifier and then at the node that wants to send to the ones next ot it, it only has to send atnd and get the NIs of the nodes next to it and use ATDN to send to them. Is that feasable using only the 128 bytes of serial buffer on the arduino FIO?
Yes, you can do this. It isn't part of the XBee's operation, but you can certainly give them meaningful names, and then send to the appropriate devices using something like an arduino to set up the messages by getting the addresses based on the names. If you are building your own simple table of names and addresses, you can send to specific devices based on the lookup.
3 - For two adjacent nodes, how can I get the RSSI value of one of them from the other?
You have to read it, then send it. I can't find anything in their documentation about remotely reading another XBee's RSSI value. Or, if you mean how can you tell the signal strength of a nearby XBee, send it something it has to respond to and check the RSSI of its response. The reason for two answers is because I'm not totally sure what you want to do.
2 - What do you mean by " Normal " XBEEs?. I'm putting the XBEE on Arduino Shields, if that's what you're asking.
There's a bunch of different kinds of XBees. Most of us talk about Series1 or Series2 embedded modules like the XB24-Z7CIT-004 this is what is normally referred to as 'normal'. However, last year Digi introduced a number of other devices to confuse us. They have programmable XBees like the XBP24BZ7WITB003 which one can actually program to do something special and not add a separate processor as well as the special purpose sensors I mentioned before. However, best I understand, the programmable XBees require the Digi development kit appropriate to them and use a different IDE for developing code. I have no interest in these devices for a couple of reasons. First, I can easily use one of the tiny arduinos to handle the programming and second, I can't find out how much the darn things cost. One of the really small 3V arduinos + a wall wart power supply + a 'normal' Xbee would be an extremely powerful combination.
Did I get all the questions? Did any of the answers make any sense at all?