home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
r
/
rdmap116.zip
/
ROADMAP.DOC
< prev
next >
Wrap
Text File
|
1992-10-27
|
23KB
|
480 lines
***************************** Roadmap V1.10 *****************************
*************************************************************************
Purpose: Roadmap will automatically create Squish/Qmail/FD
compliant ROUTE.CFG files for your entire NETWORK.
NOTE: Roadmap is a very complicated program, and requires
that anyone in your NET using the program coordinate
information with one another. Failure to do so will
result in ROADMAP creating incorrect route.cfg files
that, at best, may not create complete ROUTE.CFG
files for every node. At worst, ROADMAP will create
ROUTE.CFG files that "ping-pong" mail between systems.
*************************************************************************
************************ Files Used and created *************************
Roadmap requires 3 input files that it gets information from.
They are:
Nodelist Roadmap reads any St. Loius style nodelist directly.
All you do is tell roadmap where your "nodelist"
directory is, and roadmap will automatically select
the latest nodelist to use.
Roadmap.cfg Roadmap has a configuration file. In this file is
all the "custom" information for your particular
system. These include your nodelist path,
zone:net/node #, who will accept your LPM mail,
and a "template" ROUTE.CFG file that roadmap "modifies"
every time it runs.
Roadmap.exc Roadmap.exc is the file that has details on your
net's phone exchange information.
Using this information, roadmap creates 2 output files;
ROADMAP.TMP This is the "solved" NET routing file... This is
the file the "insert_map" verb writes in your
route.cfg file. I left it here just in case you
have another use for this file. If not, it
simply could be deleted in a batch file every
time the program is run.
ROUTE.CFG This is the actual output file of ROADMAP. This
file is the actual ROUTE.CFG file that can be used
by your mailer. For FD users, you will have to rename
this to ROUTE.FD before you can use it. Again, a
perfect job for a batch file (Or .CMD file for us
OS/2 users)
************************************************************************
************************** Operation Overview **************************
Roadmap first opens it's configuration file. From here, it finds out
where it can find a nodelist, it's zone:net/node#, node numbers
that it shouldn't "solve" for (exclude from the output), the areacode
it is in (as seen in the nodelist).
Roadmap then reads "operating" variables into it. It finds out who it
can send LPM to, and what phone exchanges within your net have at least
one node participating in LPM distribution.
From there, it reads how you want to treat your "output". I.E. what
verbs you want to use for the SEND's and ROUTE's it creates.
Lastly, the end of the configuration file holds the "template" of your
configuration file. This template holds all the "outside" net routing,
since roadmap will only solve your own net's routing. This also holds
any "specially treated" nodes within your net. For Example, lets say a
node within your net polls you for echomail. If you allow roadmap to
"route" this node, your tosser will route echomail along that route.
Usually, routed echomail is looked down upon in fidonet, and it is
not advised without prior consent of all involved. Routed echomail
is something much different than routed netmail. Routed Netmail
is usually low in volume, routed echomail can be megabytes a day!.
Also, if you have any tosser schedules, you MUST include them in your
template. Again, ALL ROADMAP DOES is CREATE a ROUTING FILE FOR YOUR NET!!
Anything else has to still be done manually!!, and those manual entries
must be put in your TEMPLATE.
After ROADMAP has read it's configuration file, it then reads the
phone exchanges file. Here it groups the exchanges into calling groups,
and finds out what other calling groups the group can call..
For Example:
Group Wallingford
Exchanges 265,269,284,294,949
Calling Meriden,Cheshire,New_Haven
End Wallingford
The above is an entry in a typical ROADMAP.EXC file for Wallingford, CT.
Roadmap reads this information, and from it does the following:
It creates a calling group called WALLINGFORD.
It then is told information about group Wallingford. This information
is in the form of what phone exchanges make up the group, and what
other groups WALLINGFORD can call.
In this case, it knows that if the prefix of a phone # in your areacode
begins with 265,269,284,294, or 949, it belongs to group WALLINGFORD,
and that phone exchange can then call itself, and also the
calling groups MERIDEN, CHESHIRE and NEW_HAVEN..
Next, roadmap looks in your NODELIST directory, finds the latest NODELIST
by date (this way it doesn't get confused in the beginning of JANUARY),
and then opens the nodelist.
Roadmap scans the nodleist until it finds your Zone:net. It then, one by
one, reads in every node in your net. It stores the node number, and then
looks at the phone prefix for the phone number of the node. If there is
no phone number (in the case of PVT nodes), it reports that the node
is not within your areacode, or is PVT! and continues with the next node,
disregaurding the "offending" node..
If it does find a phone number, it "checks" the prefix, and finds which
calling group it belongs to. ROADMAP does NOT use the "location" found
in the nodelist, it uses the phone number to find the "group" it is
in as you specified in ROADMAP.EXC. If it cannot locate a dialing prefix
match from the ROADMAP.EXC file, it warns you, and then throws that node
away. After all the nodes in the net are processed, it closes the
nodelist, and proceeds to "solve" the routing of your NET.
From here, roadmap looks, node by node, on how to create a NO-COST
link to that node from your node. It goes by groups. Roadmap's logic
can be confusing at first, and unfortunatly explaining things is NOT
one of my strong points, but here goes:
Roadmap, while reading in the nodelist, searched for you. Let's say
you are 1:141/865 (me). It finds out that your dialing prefix is
949, which is part of group WALLINGFORD, thus you are in group WALLINGFORD.
It now takes a node, and attemps to find a free link between you and the
node in question.
If you are local to the node, the node is placed at the beginning of
the "solved" route file, with a SEND ???? in front of it. The ???? is
replaced with the verb you specified in the SEND_VERB keyword of the
configuration file.
If the node is NOT local to you, it will attempt to find the shortest
free route to that node. If it finds a route, it will place the node
in the output "solved" file, with a SEND ???? Z:N/ROUTER in front
of it, and any other nodes to be routed the same way. The ???? is
replaced with the verb you specified in the ROUTE_VERB keyword in
the configuration file. The ROUTER will be replaced with the node
number of the router it chose as the best person to send this node's
mail to.
If ROADMAP is unable to find a toll-free link, it will
place the node at the end of the "solved" route file, and will place
a SEND ???? in front of it, and any other nodes that cannot be routed
free. The ???? is replaced with the verb you specified in the
NOTLOCAL_VERB keyword in the configuration file.
PLEASE NOTE: A TOLL FREE LINK means that NO NODE using roadmap
will incur any expense in delivering the mail within the NET.
ROADMAP IS DESIGNED NEVER TO MAKE ANY NODE MAKE
AN LD CALL TO DELIVER NETMAIL WITHIN THE NET. IF
ROADMAP CANNOT FIND A FREE LINK, IT DEAD-ENDS THAT
NODE ON YOUR SYSTEM. You can either choose to send
the mail yourself, incurring the charges yourself,
or putting that node's mail on HOLD.. For this
reason, it is suggested the the ROUTE_TO nodes
you choose also be using ROADMAP. This way, No-one
will force any other node to make LD call's on it's
behalf.
When roadmap cannot find a link in only a few steps (I.E. it's not local
to you, or your routers), roadmap creates a "tree", starting with your
routers, and builds search branches of that tree, one branch for every
group that can be called (local to) by a group above it.. Example:
Wallingford (Base of Tree, Level 1)
|------------------|-------------------|
|--------------Meriden |-----Cheshire |------New_Haven (Level 2)
Southington Waterbury Branford Milford Guilford (Level 3)
etc..etc..etc..
Roadmap keeps growing the search tree until it finds the group it's looking
for (The group the node we are looking for is found). Once it finds this
group, roadmap "looks up" to find which branch (level 2) spawned it. Level
2 is really all your routers, and by "looking up", it knows which router
to route this node to.
PLEASE NOTE: In this scenario, roadmap uses the CAN_ROUTE groups
to determine if a group can be used in the search tree.
For example, if, when ROADMAP starts searching group
MERIDEN sees that MERIDEN can call group SOUTHINGTON,
it marks SOUTHINGTON as a possible search "branch" on
it's next pass (Next lower level). When roadmap gets
to that level (Level 4 will expand Southington's calling
area in the example above), roadmap first checks to see
if a node exists in Southington that can accept routed
mail. It gets this from the CAN_ROUTE entries in the
roadmap.cfg file. If group SOUTHINGTON does not appear,
roadmap ignores Southington, saying that even if I
can get to my target group via Southington, it won't
matter because no-one in Southington can accept my mail.
Now, let's examine this case:
Wallingford
|
Cheshire
|
Waterbury
|
Woodbury
|
Newtown
|
Danbury
This is the shortest distance from Wallingford to Danbury. If all those
towns above are in my CAN_ROUTE list, that's the route ROADMAP will choose
when it trys to find a route to Danbury. If, however, I take a town out
of the list, ROADMAP will attempt to find another route to DANBURY.
For example, lets say I take Cheshire out:
Wallingford
|
Meriden
|
Southington
|
Waterbury
|
Woodbury
|
Newtown
|
Danbury
This is what happens, assuming all the above towns ARE in my
CAN_ROUTE list. It said I cannot use Cheshire, but found out
that Meriden can call Southington, which can call Waterbury, and
chose that route. If it could not find a new route, it would mark
that node as un-routable, and place it in the SEND LD line.
Now, for the reason why ROADMAP's CAN_ROUTE list HAS to be coordinated
within a NET...
Lets, for sake of argument, say the following towns are interconnected
like this:
Wallingford----------------------
| |
Cheshire New Haven
| |
Waterbury Milford
| |
Woodbury-------------| Bridgeport
| Seymour |
Newtown |-----------
|
Danbury
As you can see, both Bridgeport and Woodbury can call Seymour.
Now, lets say that ROADMAP attempts to solve the Cheshire
nodes path to Danbury. WATERBURY, WOODBURY, and NEWTOWN are
all in the node's CAN_ROUTE list, so ROADMAP determines the
shortest distance to Danbury is .via. those 3 hops.
Now, ROADMAP on the system in Milford attempts to SOLVE for
Danbury. It has BRIDGEPORT, SEYMOUR, WOODBURY, and NEWTOWN
in it's list, and so, ROADMAP realizes that the shortest way
to Danbury is going through Seymour. A total of 4 hops.
Now, the guy in BRIDGEPORT doesn't have SEYMOUR in his CAN_ROUTE list,
so when ROADMAP solves for Danbury on his system, it says,
hey, Seymour would be the shortest, but I can't go that way, so
I have to go all the way around. MILFORD, NEW_HAVEN,WALLINGFORD,
CHESHIRE,WATERBURY,WOODBURY and NEWTOWN are in his CAN_ROUTE list,
and so roadmap determines the "best available" way to route to
Danbury is through Milford...
We have a "ping-Pong" problem here... Milford will attempt to
route Netmail destined to Danbury through Bridgeport. Bridgeport,
on the other hand, will route it through Milford... So, the nodes
will end up sending this poor little innocent netmail message back
and forth between the node in Milford and the node in Bridgeport...
This is why IT IS VERY IMPORTANT that EVERYONE's CAN_ROUTE lists
be the same in a NET!!!!!!!
***********************************************************************
******************** ROADMAP.CFG file Keywords ************************
***********************************************************************
Here is the list of keywords that can be included in the .CFG file, and
their explanation. All keywords must be seperated from their arguments
by at least one space, although any number of spaces can be used for
viewability. Keywords ARE NOT CASE SENSITIVE.
NODELIST Place the Path to where you store your NODELIST directoy.
MY_ZONE Your fidonet Zone number.
NY_NET Your Fidonet NET number.
NY_NODE Your Fidonet NODE number.
EXCLUDE List the nodes that you DO NOT want in the output.
These are usually numbers if you have alias numbers,
such as an administrative number. But, any number can
be excluded.
You can have a Maximum of 20 numbers here, and you can
have them spread out over more than one EXCLUDE keyword.
AREACODE Your Areacode, as seen in the nodelist.
ROUTE_TO The nodes that have agreed to accept your routed mail.
It is suggested that these nodes also run ROADMAP.
You can have a Maximum of 10 Nodes that you can send
your ROUTED mail to, and they can be spread out over
more than one ROUTE_TO keyword.
CAN_ROUTE This is a list of the calling groups that have a node
in them that is willing to route mail.
A Maximum of 50 CAN_ROUTE Groups can be given, and
you can spread them out over more than one CAN_ROUTE
keyword, as shown in the sample .CFG file.
SEND_VERB This is the "modifier" that ROADMAP will place after
any node that you can call locally, in the ROUTE.CFG
file. This is the verb (Crash, Normal, Direct, Hold)
that your mailer will use when determining the priority
of the mail to these nodes.
ROUTE_VERB This is the "modifier" ROADMAP will place after the
ROUTE verb in the ROUTE.CFG file. This is the verb
(Crash, Normal, Direct, Hold) that your mailer will
use when determining the priority to send this mail
to the node (Your Routers, the nodes in you ROUTE_TO
list).
NOTLOCAL_VERB This it the "modifier" that roadmap will pace in your
ROUTE.CFG file after and nodes that cannot be reached
via a toll free link. Placing HOLD here will cause
your mailer NEVER to call these nodes, thus NOT making
any LD calls within your net. You could choose to
place any other "modifier" here, so as to deliever
the mail yourself, if your system gets any mail for
these nodes.
NOTLOCAL_ROUTE This keyword is optional. If this keyword is not used,
ROADMAP will create a "SEND (NOTLOCAL_VERB) nodes....
for all nodes that cannot be routed within the net
toll free.
If this keyword is used, ROADMAP will route all the
nodes that cannot be routed for free to this node.
THIS CAN BE DANGEROUS, AS IT ALLOWS ROADMAP TO SEND
MAIL TO ANOTHER SYSTEM THAT MAY ULTIMATLY MAKE THAT
SYSTEM CALL LONG DISTANCE!!! USE THIS KEYWORD WITH
CAUTION, AND CHECK WITH THE NODE YOU PLAN TO ROUTE
THESE 'UNROUTABLE' NODES TO BEFORE YOU DO THIS.
BEGIN_CFG This marks the Beginning of you ROUTE.CFG template.
Roadmap needs a TEMPLATE ROUTE.CFG file, that it will
place it's "answers" into. This is because ROADMAP
cannot solve out of net LPM, and other special
routing that you and others may have already established.
The best thing to do is take the sample ROADMAP.CFG file
that came with the package, and delete EVERYTHING after
BEGIN_CFG. Then, append a copy of your PRESENT ROUTE.CFG
to the ROADMAP.CFG file, after the BEGIN.CFG keyword.
INSERT_MAP This is used inside the ROUTE.CFG TEMPLATE. Wherever
you place this verb, ROADMAP will replace this verb
with the routing it determined for your NET. This
verb can be used as many times as you want within the
template. (Just in case you have more than one event that
requires NET routing).
END_CFG This signifies the End of your ROUTE.CFG template file,
and usually the end of your ROADMAP.CFG file as well.
**********************************************************************
********************** ROADMAP.EXC File Format ***********************
**********************************************************************
The ROADMAP.EXC file holds all the phonde dialing info for your
particular area. This information may not be easy to find; it took
me almost a week of searching various phone books (The front usually
has a map of the calling area it covers with dialing exchanges
and calling coverages).
First, you must pick a group name for every DIFFERENT calling group
in your area. The group name you pick is arbitrary, so long as it
has no spaces in it, and is not longer than 20 characters. I attempted
to represent the towns (logical, huh?) that they encompass. Usually,
the phone company has already named these groups. For Example, in the
front cover of the NEW_HAVEN, CT phone book, the phone company has
a little map showing all the dialing prefixes in NEW_HAVEN, and then
little arrows to surrounding towns that NEW_HAVEN can dial. That's what
you want. Physically, NEW_HAVEN, CT includes other towns, like North
Haven, and Hamden. But, ALL their phonde numbers have the same dialing
"range", so you include them in one group!
You organize a group like this in the ROADMAP.EXC file:
Group NEW_HAVEN
Exchanges xxx,yyy,zzz,aaa,bbb
Exchanges xxy,yyx,zza,aab,bbz
Calling WALLINGFORD,MILFORD
Calling CHESHIRE,BRANFORD
End NEW_HAVEN
Please note that you can have any number of EXCHANGES and CALLING keywords
within a group. You can have 75 Exchanges (dialing Prefixes) and 20 Calling
groups.
You can have a Maximum of 75 Groups.
When creating the calling groups, if you say that a group can call another
group, you MUST define that other group somewhere in your ROADMAP.EXC file.
For example, I mentioned WALLINGFORD, MILFORD, CHESHIRE and BRANFDORD
above. This means that I MUST define those groups in my ROADMAP.CFG also.
Also, when I do define those groups, I put NEW_HAVEN in as a group it
can call.
Hint: Net 141's boundry is Southington. Southington can
call BRISTOL, but BRISTOL is not part of NET 141. It is
our neighboring net, NET 142. Which means when I solve for
net 141, I will NEVER have a BRISTOL node to deal with.
So, even though SOUTHINGTON can dial BRISTOL, I didn't
put BRISTOL in SOUTINGTON's calling info. This way,
I don't have to define BRISTOL in ROADMAP.EXC.
It's pretty self explanatory, take a peek at the sample ROADMAP.EXC file
if you still have any questions. If you still have any questions,
comments, suggestions, or that "b" word (Bug reports), feel free
to Netmail me at 1:141/865, or log into the BBS at (203) 949-0375.
While I'm here, I'd like to thank some people that helped me with
beta-testing this program, putting up with my numerous phone calls,
and netmail messages attempting to check ROADMAP, and all of NET 141
in general for being so receptive and helpful.
Brian Bonfietti (141/1130) , Dave Drouin (141/805) , Bob Morris (141/333)
Furlan Primus (141/1100) , Tom Ruddy (141/755) , Don Dawson (141/730)
Joel Lambert (141/455) , Terry Wodek (141/375) , Jim Ryan (141/9)
Mark Terrace (141/340) , Phil Palumbo (141/336) , Don Bates (141/814)
Steve Sekula (141/110) , Chris Regan (141/565) , Brian Dodds (141/1170)
And last but not least, Registration:
I wrote this to help out Fidonet, I don't want money for it. Maybe
a note letting me know you use it would be nice, but not nessesary.
I do ask you to do one little thing though. If you use it, go out,
and buy a kid an ice cream cone. Spend some time with a kid. You'll
both enjoy the time you spend together!
Andre Normandin
NETWORK SOLUTIONS
Fidonet: 1:141/865
BBS: (203) 949-0375