Satellite links resemble wireless links, which are described in Chapter 15. Each satellite node has one or more satellite network interface stacks, to which channels are connected to the physical layer object in the stack. Figure 16.3 illustrates the major components. Satellite links differ from wireless links in two major respects: i) the transmit and receive interfaces must be connected to different channels, and ii) there is no ARP implementation. Currently, the Radio Propagation Model is a placeholder for users to add more detailed error models if so desired; the current code does not use a propagation model.
Network interfaces can be added with the following instproc of Class Node/SatNode:
$node add-interface $type $ll $qtype $qlim $mac $mac_bw $phyThe add-interface instproc returns an index value that can be used to access the network interface stack later in the simulation. By convention, the first interface created on a node is attached to the uplink and downlink channels of a satellite or terminal. The following parameters must be provided:
An ISL can be added between two nodes using the following instproc:
$ns add-isl $ltype $node1 $node2 $bw $qtype $qlimThis creates two channels (of type Channel/Sat), and appropriate network interfaces on both nodes, and attaches the channels to the network interfaces. The bandwidth of the link is set to bw. The linktype (ltype) must be specified as either intraplane, interplane, or crossseam.
A GSL involves adding network interfaces and a channel on board the satellite (this is typically done using the wrapper methods described in the next paragraph), and then defining the correct interfaces on the terrestrial node and attaching them to the satellite link, as follows:
$node add-gsl $type $ll $qtype $qlim $mac $bw_up $phy \bs [$node_satellite set downlink_] [$node_satellite set uplink_]Here, the type must be either geo or polar, and we make use of the downlink_ and uplink_ instvars of the satellite; therefore, the satellite's uplink and downlink must be created before this instproc is called.
Finally, the following wrapper methods can be used to create nodes of a given type and, in the case of satellite nodes, give them an uplink and downlink interface as well as create and attach an uplink and downlink channel:
$ns satnode-terminal $latitude $longitude $ns satnode-polar $alt $inc $lon $alpha $plane $linkargs $chan $ns satnode-geo $longitude $linkargs $chan $ns satnode-geo-repeater $longitude $chanwhere linkargs is a list of link argument options for the network interfaces (i.e., $ll $qtype $qlim $mac $mac_bw $phy).