Ex. 3 Notes =========== General notes: ------------- 1) Work on theta. you'll find most of the interesting things in either /vol/comm/WorkShop96b (which can be accessed from other hosts) or /usr/fore . 2) If you want to read the fore-atm manuals you need to add to your MANPATH the directory /usr/fore/man. In csh you can use the command "setenv MANPATH ${MANPATH}:/usr/fore/man". Use the command "man -k atm" to see all relevant commands. Check out "man atm_intro". 3) Look at the example in "vol/comm/WorkShop96b/examples/atm_null_200". null - Because we don't use any aal (=null aal). 200 - Because we have the fore sba200 atm card. 4) Look at the makefile. As you can see we need both the /usr/fore include and lib files and the /vol/comm/WorkShop96b/local files. 5) Try to execute it using runme. fa0 - the atm card device name. 192.115.102.194 - theta atm card ip address. (NOT equal to theta!) 6) Look at the /vol/comm/WorkShop96b/local files. As you can see from local_atm.c, most of what we do is duplicate the normal atm api. However, we add to several functions a new parameter (like in local_atm_connect) with which you can choose which kind of function to use. You can either use the usual function (choice == LOCAL_NONE ) or one that was made by students (choice == LOCAL_DBA or choice == LOCAL_TCP). For now, we will always use LOCAL_NONE. Notes For the exercise: ---------------------- 1) You always have to bind an atm socket, even in the client. 2) You CAN use the concurrent module. This means that (as opposed to what's written in the manual) atm_accept can accept two different file descriptors. However, you need to open and bind the second one (fdnew) before calling local_atm_accept. 3) Another error in the manuals. atm_recv_null cannot accept a null header. 4) Also, don't use setbatchsize. 5) Remember that, as opposed to regular sockets, it is the atm_listen that blocks. When used in a select, it will raise an exceptional condition (and not a "ready for reading" condition). 6) You can assume that your data is 48 bytes long. Have Fun. Gideon.