<HTML><HEAD>
<STYLE type="text/css">
<!--
A { text-decoration:none }
-->
</STYLE>
</HEAD>
<BODY>

<TABLE WIDTH=100%><TR>
	<TD ALIGN=LEFT VALIGN=TOP>
		<FONT SIZE=+0 FACE="COURIER"><B>A "Distributed Pcap" for<BR>Remote Monitoring LANs & WANs</B><BR>
										(Design Notes for the SITA ACN device)</FONT>
	</TD>
	<TD ALIGN=RIGHT VALIGN=TOP>
		Fulko Hew<BR>SITA INC Canada, Inc.<BR>Revised: October 2, 2007
	</TD>
</TR></TABLE>


<H3>SUMMARY</H3>
<UL>
	<STRONG>Note:</STRONG> This document is part of the libpcap Git and was derived from 'pcap.3' (circa Aug/07).
	<P>
	The ACN provides a customized/distributed version of this library that allows SMPs to
	interact with the various IOPs within the site providing a standard mechanism
	to capture LAN and WAN message traffic.
	<P>
	<CENTER>
		<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3 WIDTH=75%>
			<TR>
				<TH VALIGN=TOP>SMP</TH>
				<TD VALIGN=TOP>The Supervisory Management Processor where Wireshark (or equivalent)
								runs in conjunction with a libpcap front-end.</TD>
			</TR>
			<TR>
				<TH VALIGN=TOP>IOP</TH>
				<TD VALIGN=TOP>I/O Processors where the monitored ports exist in conjunction
								with a custom device driver/libpcap back-end.</TD>
			</TR>
		</TABLE>
	</CENTER>
	<P>
	Each IOP will be capable of supporting multiple connections from an SMP
	enabling monitoring of more than one interface at a time, each through
	its own separate connection.  The IOP is responsible to ensure and report
	an error if any attempt is made to monitor the same interface more than once.
	<P>
	There are three applications that will be supported by the ACN version of libpcap.
	They each use a slightly different mode for looping/capturing and termination
	as summarized in the following table:
	<P>
	<CENTER>
	<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
	<TR><TH>Application</TH>	<TH>Capture</TH>	<TH>Termination</TH></TR>
	<TR><TH VALIGN=TOP NOWRAP>wireshark</TH>
			<TD VALIGN=TOP>pcap_dispatch(all packets in one buffer of capture only)</TD>
			<TD VALIGN=TOP>pcap_breakloop()</TD>
		</TR>
	<TR><TH VALIGN=TOP NOWRAP>tshark</TH>
			<TD VALIGN=TOP>pcap_dispatch(one buffer of capture only)</TD>
			<TD VALIGN=TOP>Since a CTRL-C was used to terminate the application, pcap_breakloop() is never called.</TD>
		</TR>
	<TR><TH VALIGN=TOP NOWRAP>tcpdump</TH>
			<TD VALIGN=TOP>pcap_loop(all packets in the next buffer, and loop forever)</TD>
			<TD VALIGN=TOP>pcap_breakloop()</TD>
		</TR>
	</TABLE>
	</CENTER>
	<P>
	<B>Note: </B>In all cases, the termination of capturing is always (apparently) followed by
	pcap_close().  Pcap_breakloop() is only used to stop/suspend looping/processing,
	and upon close interpretation of the function definitions, it is possible to resume
	capturing following a pcap_breakloop() without any re-initialization.
	<P>
	<H4>ACN Limitations</H4>
	<OL>
		<LI>Monitoring of backup IOPs is not currently supported.
		<LI>Ethernet interfaces cannot be monitored in promiscuous mode.
	</OL>

</UL>

<H3>ROUTINES</H3>
<UL>
		The following list of functions is the sub-set of Pcap functions that have been
		altered/enhanced to support the ACN remote monitoring facility.  The remainder of the Pcap
		functions continue to perform their duties un-altered.  Libpcap only supports this
		mode of operation if it has been configured/compiled for SITA/ACN support.
		<P>
		<UL><FONT FACE=COURIER>
			pcap_findalldevs<BR>
			pcap_freealldevs<BR>
			pcap_open_live<BR>
			pcap_close<BR>
			pcap_setfilter<BR>
			pcap_dispatch<BR>
			pcap_loop<BR>
			pcap_next<BR>
			pcap_next_ex<BR>
			pcap_stats<BR>
		</FONT></UL>

	These subroutines have been modified for the ACN specific distributed and remote monitoring
	ability perform the following basic functions.  More detail is provided in the
	"SMP/IOP Inter-Process Communication Protocol" section.
	<P>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_open_live()</B></TD>
		<TD VALIGN=TOP>Used to obtain a packet capture descriptor to look at packets on the network.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP will open a connection to the selected IOP on its 'sniffer' port
			to ensure it is available.  It sends a null terminated string identifying
			the interface to be monitored.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			After any required processing is complete, the IOP will return a
			null terminated string containing an error message if one occurred.
			If no error occurred, a empty string is still returned.
			Errors are:
			<UL>
			<LI>"Interface (xxx) does not exist."
			<LI>"Interface (xxx) not configured."
			<LI>"Interface (xxx) already being monitored."
			</UL>
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_findalldevs()</B></TD>
		<TD VALIGN=TOP>It constructs a list of network devices that can be opened with pcap_open_live().</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			It obtains a list of IOPs currently available (via /etc/hosts).
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP will sequentially open a connection to each IOP on its 'sniffer' port to ensure
			the IOP is available.
			It sends a null terminated empty interface ID followed by the query request command.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>The IOP returns an error response and its list of devices.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP closes the TCP connection with each IOP.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP adds the received information to its internal structure.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_freealldevs()</B></TD>
		<TD VALIGN=TOP>Used to free a list allocated by pcap_findalldevs().</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP frees the structure it built as a result of the previous
			invocation of pcap_findalldevs().
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_dispatch()</B></TD>
		<TD VALIGN=TOP>Used to collect and process packets.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			On the first invocation of pcap_dispatch(), pcap_loop(), or pcap_next(), or pcap_next_ex() following a pcap_open_live(),
			the SMP will pass down the monitor start command and various parameters the IOP should use.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP now sends a stream of captured data.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP will read the reverse channel of the connection between the SMP and the
			IOP that provides the captured data (via 'p->read_op' which is 'pcap_read_linux()'
			until the select() call returns a 'no more data' indication.
			It will the process (at most) the next 'cnt' packets and invoke the specified
			callback function for each packet processed.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP</TH>
			<TD>
			The IOP continues to listen for additional commands as well as capturing and forwarding data to the SMP.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_loop()</B></TD>
		<TD VALIGN=TOP>
				Is similar to pcap_dispatch() except it keeps reading packets until
				the requested number of packets are processed or an error occurs.
		</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			On the first invocation of pcap_dispatch(), pcap_loop(), or pcap_next(), or pcap_next_ex() following a pcap_open_live(),
			the SMP will pass down the monitor start command and various parameters the IOP should use.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP now sends a stream of captured data.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP continuously reads the next packet from the reverse channel of the connection
			between the SMP and the IOP that provides the captured data (via 'p->read_op'
			which is 'pcap_read_linux()' until 'cnt' packets have been received.
			The specified callback function will be invoked for each packet received.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP</TH>
			<TD>
			The IOP continues to listen for additional commands as well as capturing and forwarding data to the SMP.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_next()</B></TD>
		<TD VALIGN=TOP>
			It reads the next packet (by calling pcap_dispatch() with a count of 1)
			and returns a pointer to the data in that packet.
		</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			On the first invocation of pcap_dispatch(), pcap_loop(), or pcap_next(), or pcap_next_ex() following a pcap_open_live(),
			the SMP will pass down the monitor start command and various parameters the IOP should use.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP now sends a stream of captured data.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP reads only the next packet from the reverse channel of the connection
			between the SMP and the IOP that provides the captured data (via calling pcap_dispatch()
			with a count of 1) and returns a pointer to that data by invoking an internal callback.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP</TH>
			<TD>
			The IOP continues to listen for additional commands as well as capturing and forwarding data to the SMP.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_next_ex()</B></TD>
		<TD VALIGN=TOP>Reads the next packet and returns a success/failure indication.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			On the first invocation of pcap_dispatch(), pcap_loop(), or pcap_next(), or pcap_next_ex() following a pcap_open_live(),
			the SMP will pass down the monitor start command and various parameters the IOP should use.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP now sends a stream of captured data.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP reads only the next packet from the reverse channel of the connection
			between the SMP and the IOP that provides the captured data (via calling pcap_dispatch()
			with a count of 1) and returns separate pointers to both the
			packet header and packet data by invoking an internal callback.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP</TH>
			<TD>
			The IOP continues to listen for additional commands as well as capturing and forwarding data to the SMP.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_setfilter()</B></TD>
        <TD VALIGN=TOP>Used to specify a filter program.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP sends a 'set filter' command followed by the BPF commands.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP returns a null terminated error string if it failed to accept the filter.
			If no error occurred, then a NULL terminated empty string is returned instead.
			Errors are:
			<UL>
			<LI>"Invalid BPF."
			<LI>"Insufficient resources for BPF."
			</UL>
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_stats()</B></TD>
        <TD VALIGN=TOP>Fills in a pcap_stat struct with packet statistics.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP sends a message to the IOP requesting its statistics.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP -> SMP</TH>
			<TD>
			The IOP returns the statistics.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>SMP</TH>
			<TD>
			The SMP fills in the structure provided with the information retrieved from the IOP.
			</TD>
		</TR>
	</TABLE></TD></TR>

	<TR>
		<TD VALIGN=TOP ROWSPAN=2><B>pcap_close()</B></TD>
        <TD VALIGN=TOP>Closes the file and deallocates resources.</TD>
	</TR>
	<TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100%>
		<TR><TH VALIGN=TOP NOWRAP>SMP -> IOP</TH>
			<TD>
			The SMP closes the file descriptor, and if the descriptor is that of
			the communication session with an IOP, it too is terminated.
			</TD>
		</TR>
		<TR><TH VALIGN=TOP NOWRAP>IOP</TH>
			<TD>
			If the IOP detects that its communication session with an SMP
			has closed, it will terminate any monitoring in progress,
			release any resources and close its end of the session.
			It will not maintain persistence of any information or prior mode of operation.
			</TD>
		</TR>
	</TABLE></TD></TR>
</TABLE>
</UL>

<P>
<H3>SMP/IOP Inter-Process Communication Protocol</H3>

<UL>
	<LI><P>Communications between an SMP and an IOP consists of a TCP session
			between an ephemeral port on the SMP and the well known port of 49152
			(which is the first available port in the 'dynamic and/or private port'
			range) on an IOP.
	<LI><P>Following a TCP open operation the IOP receives a null terminated
			'interface ID' string to determine the type of operation that follows:
	<LI><P>Every command received by an IOP implies a 'stop trace/stop forwarding' operation must
			occur before executing the received command.
	<LI><P>A session is closed when the SMP closes the TCP session with the IOP.
			Obviously monitoring and forwarding is also stopped at that time.

	<B>Note: </B>All multi-octet entities are sent in network neutral order.
	<P>

	<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP ROWSPAN=6>pcap_findalldevs()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>Open socket (to each IOP), and sends:
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>Interface ID</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>A NULL to indicate an empty 'interface ID'.</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>Send its (possibly empty) NULL terminated error response string.</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>Sends the 'interface query request':
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>Interface ID</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>A 'Q' (indicating 'interface query request').</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>The IOP returns a list of sequences of information as
				defined by the return parameter of this function call (as shown in the following table).
				Elements are specified by providing an unsigned byte preceding the actual data that contains length information.
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
				<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Notes:</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
				</TR>
				<TR>
					<TD ROWSPAN=7>&nbsp;</TD>
					<TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the name field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Name</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1-255</TD>
					<TD VALIGN=TOP>The name of the interface. The format of the name is an alphabetic string (indicating
									the type of interface) followed by an optional numeric string (indicating the interface's
									sequence number).
									Sequence numbers (if needed) will begin at zero and progress monotonically upwards.
									(i.e. 'eth0', 'lo', 'wan0', etc.)
									<P>
									For an IOP, the alphabetic string will be one of: 'eth', 'wan', and 'lo'
									for Ethernet, WAN ports and the IP loopback device respectively.
									An IOP currently supports: 'eth0', 'eth1', 'lo', 'wan0' ... 'wan7'.
									<P>
						<B>Note:</B> IOPs and ACNs will not currently support the concept of 'any' interface.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the interface description field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Interface Description</TD>
					<TD VALIGN=TOP ALIGN=CENTER>0-255</TD>
					<TD VALIGN=TOP>A description of the interface or it may be an empty string. (i.e. 'ALC')</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Interface Type</TD>
					<TD VALIGN=TOP ALIGN=CENTER>4</TD>
					<TD VALIGN=TOP>The type of interface as defined in the description for pcap_datalink() (in network neutral order).</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Loopback Flag</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>1 = if the interface is a loopback interface, zero = otherwise.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=RIGHT>count</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP># of address entries that follow.
						Each entry is a series of bytes in network neutral order.
						See the parameter definition above for more details.</TD>
				</TR>
				<TR>
					<TD ALIGN=CENTER ROWSPAN=8 WIDTH=1%>Repeated 'count' number of times.</TD>
					<TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the address field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Address</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1-255</TD>
					<TD VALIGN=TOP>The address of this interface (in network neutral order).</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the netmask field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Network Mask</TD>
					<TD VALIGN=TOP ALIGN=CENTER>0-255</TD>
					<TD VALIGN=TOP>The network mask used on this interface (if applicable) (in network neutral order).</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the broadcast address field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Broadcast Address</TD>
					<TD VALIGN=TOP ALIGN=CENTER>0-255</TD>
					<TD VALIGN=TOP>The broadcast address of this interface (if applicable) (in network neutral order).</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=RIGHT>length</TD>
					<TD VALIGN=TOP ALIGN=CENTER>1</TD>
					<TD VALIGN=TOP>The number of octets in the destination address field that follows.</TD>
				</TR>
				<TR><TD VALIGN=TOP ALIGN=LEFT>Destination Address</TD>
					<TD VALIGN=TOP ALIGN=CENTER>0-255</TD>
					<TD VALIGN=TOP>The destination address of this interface (if applicable) (in network neutral order).</TD>
				</TR>
				</TABLE>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>Close the socket.</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>Close the socket.</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP ROWSPAN=2>pcap_open_live()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>Open socket, and sends:
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>Interface ID</TD>
						<TD VALIGN=TOP ALIGN=CENTER>'n'</TD>
						<TD VALIGN=TOP>'n' octets containing a NULL terminated interface name string.</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>Send its NULL terminated error response string.</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP NOWRAP ROWSPAN=2>pcap_dispatch()<BR>pcap_loop()<BR>pcap_next()<BR>pcap_next_ex()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>On the first invocation following a pcap_open_live() or pcap_breakloop() additional information is sent:
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>command</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>'M' (indicating 'monitor start')</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>snaplen</TD>
						<TD VALIGN=TOP ALIGN=CENTER>4</TD>
						<TD VALIGN=TOP>snaplen</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>timeout</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>timeout value (in milliseconds)</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>promiscuous</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>A flag indicating that the interface being monitored show operate
							in promiscuous mode. [off(0) / on(NZ)]</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>direction</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>A flag indicating the direction of traffic that should be captuted [both(0) / in(1) / out(2)]</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>Sends captured packets.</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP ROWSPAN=2>pcap_setfilter()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>At any time, the SMP can issue a set filter command which contains
							an indicator, a count of the number of statements in the filter,
							followed by the sequence of filter commands represented as a sequence
							of C-style structures.
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>command</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>'F' (indicating 'filter')</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>count</TD>
						<TD VALIGN=TOP ALIGN=CENTER>4</TD>
						<TD VALIGN=TOP>The number of command in the Berkeley Packet Filter that follow.</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>BPF program</TD>
						<TD VALIGN=TOP ALIGN=CENTER>'n'</TD>
						<TD VALIGN=TOP>8 bytes of each command (repeated 'n' times).<BR>
									Each command consists of that C-style structure which contains:
							<P>
							<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
								<TR>
								<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
								<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
								<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
								</TR>
								<TR>
									<TD VALIGN=TOP>opcode</TD>
									<TD VALIGN=TOP ALIGN=CENTER>2</TD>
									<TD VALIGN=TOP>The command's opcode.</TD>
								</TR>
								<TR>
									<TD VALIGN=TOP>'jt'</TD>
									<TD VALIGN=TOP ALIGN=CENTER>1</TD>
									<TD VALIGN=TOP>The 'jump if true' program counter offset.</TD>
								</TR>
								<TR>
									<TD VALIGN=TOP>'jf'</TD>
									<TD VALIGN=TOP ALIGN=CENTER>1</TD>
									<TD VALIGN=TOP>The 'jump if false' program counter offset.</TD>
								</TR>
								<TR>
									<TD VALIGN=TOP>'k'</TD>
									<TD VALIGN=TOP ALIGN=CENTER>4</TD>
									<TD VALIGN=TOP>The 'other' data field.</TD>
								</TR>
							</TABLE>
							<P>
							Refer to the bpf(4) man page for more details.
						</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>In return the IOP will send its (possibly empty) NULL terminated error response string.</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP ROWSPAN=2>pcap_stats()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>At any time, the SMP can issue a 'retrieve statistics' command which contains:<BR>
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>command</TD>
						<TD VALIGN=TOP ALIGN=CENTER>1</TD>
						<TD VALIGN=TOP>'S' (indicating 'request statistics')</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>IOP -> SMP</TD>
			<TD VALIGN=TOP>In return the IOP will send:
				<P>
				<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
					<TR>
					<TH VALIGN=TOP ALIGN=CENTER>Name/<BR>Purpose</TH>
					<TH VALIGN=TOP ALIGN=CENTER NOWRAP>Size<BR>(in bytes)</TH>
					<TH VALIGN=TOP ALIGN=CENTER>Description</TH>
					</TR>
					<TR>
						<TD VALIGN=TOP>ps_recv</TD>
						<TD VALIGN=TOP ALIGN=CENTER>4</TD>
						<TD VALIGN=TOP>The number of packets that passed the filter.</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>ps_drop</TD>
						<TD VALIGN=TOP ALIGN=CENTER>4</TD>
						<TD VALIGN=TOP>The number of packets that were dropped because the input queue was full,
							regardless of whether they passed the filter.</TD>
					</TR>
					<TR>
						<TD VALIGN=TOP>ps_ifdrop</TD>
						<TD VALIGN=TOP ALIGN=CENTER>4</TD>
						<TD VALIGN=TOP>The number of packets dropped by the network interface
							(regardless of whether they would have passed the input filter).</TD>
					</TR>
				</TABLE>
			</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
		<TR>
			<TD VALIGN=TOP ROWSPAN=1>pcap_close()</TD>
			<TD VALIGN=TOP ALIGN=CENTER NOWRAP>SMP -> IOP</TD>
			<TD VALIGN=TOP>At any time, the SMP can close the TCP session with the IOP.</TD>
		</TR>
		<TR><TH COLSPAN=3><HR WIDTH=100%></TH></TR>
	</TABLE>
</UL>

<H3>Interface ID Naming Convention</H3>
<UL>
	Each interface within an IOP will be referred to uniquely.  Since an currently contains
	8 monitorable WAN ports and a monitorable Ethernet port, the naming convention is:
	<P>
	<CENTER>
	<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
		<TR><TH>Interface #</TH>		<TH>Type</TH>					<TH>Name</TH></TR>
		<TR><TD ALIGN=CENTER>1</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan0</TD></TR>
		<TR><TD ALIGN=CENTER>2</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan1</TD></TR>
		<TR><TD ALIGN=CENTER>3</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan2</TD></TR>
		<TR><TD ALIGN=CENTER>4</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan3</TD></TR>
		<TR><TD ALIGN=CENTER>5</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan4</TD></TR>
		<TR><TD ALIGN=CENTER>6</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan5</TD></TR>
		<TR><TD ALIGN=CENTER>7</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan6</TD></TR>
		<TR><TD ALIGN=CENTER>8</TD>		<TD ALIGN=CENTER>WAN</TD>		<TD ALIGN=CENTER>wan7</TD></TR>
		<TR><TD ALIGN=CENTER>9</TD>		<TD ALIGN=CENTER>Ethernet</TD>	<TD ALIGN=CENTER>eth0</TD></TR>
		<TR><TD ALIGN=CENTER>10</TD>	<TD ALIGN=CENTER>Ethernet</TD>	<TD ALIGN=CENTER>eth1</TD></TR>
	</TABLE>
	</CENTER>
</UL>

<H3>Packet Trace Data Format</H3>
<UL>
	The format of the trace data that is sent to the SMP follows a portion of the libpcap file format
	and is summarized here.  This format specifies the generic requirements needed to
	be able to decode packets, but does not cover ACN specifics such as custom MAC addressing
	and WAN protocol support.
	<P>

	Although a libpcap file begins with a global header followed by zero or
	more records for each captured packet, trace data sent to the SMP does NOT begin with a global header.
	A trace sequence looks like this:
	<P>
	<TABLE>
		<TR>
			<TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Header]&nbsp;</TD>
			<TD STYLE="background-color: #c0FFc0">&nbsp;[Packet Data]&nbsp;</TD>
			<TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Header]&nbsp;</TD>
			<TD STYLE="background-color: #c0c0FF">&nbsp;[Packet Data]&nbsp;</TD>
			<TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Header]&nbsp;</TD>
			<TD STYLE="background-color: #e0c0c0">&nbsp;[Packet Data]&nbsp;</TD>
			<TD>...</TD>
		</TR>
	</TABLE>

<H4>Packet Header</H4>
	<UL>
		Each captured packet starts with a header that contains the following values
		(in network neutral order):

		<FONT SIZE=-1>
		<PRE>
 uint32 tv_sec;  /* timestamp seconds */
 uint32 tv_usec; /* timestamp microseconds */
 uint32 caplen;  /* number of octets in the following packet */
 uint32 len;     /* original length of packet on the wire */
		</PRE>
		</FONT>

		<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
			<TR>
				<TD VALIGN=TOP>tv_sec</TD>
				<TD>The date and time when this packet was captured.
					This value is in seconds since January 1, 1970 00:00:00 GMT;
					this is also known as a UN*X time_t. You can use the ANSI C
					<em>time()</em> function from <em>time.h</em> to get this value,
					but you might use a more optimized way to get this timestamp value.
					If this timestamp isn't based on GMT (UTC), use <em>thiszone</em>
					from the global header for adjustments.</TD>
			</TR>
			<TR>
				<TD VALIGN=TOP>tv_usec</TD>
				<TD>The microseconds when this packet was captured, as an offset to <em>ts_sec</em>.
					<B>Beware: </B>this value must never reach 1 second (1,000,000),
					in this case <em>ts_sec</em> must be increased instead!</TD>
			</TR>
			<TR>
				<TD VALIGN=TOP>caplen</TD>
				<TD>The number of bytes actually provided in the capture record.
					This value should never become larger than <em>len</em> or the
					<em>snaplen</em> value specified during the capture.</TD>
			</TR>
			<TR>
				<TD VALIGN=TOP>len</TD>
				<TD>The length of the packet "on the wire" when it was captured.
					If <em>caplen</em> and <em>len</em> differ, the actually
					saved packet size was limited by the value of <em>snaplen</em> specified
					during one of the capture directives such as pcap_dispatch().</TD>
			</TR>
		</TABLE>
	</UL>

<H4>Packet Data</H4>
	<UL>
	The actual packet data will immediately follow the packet header as a sequence of <em>caplen</em> octets.
	Depending on the DLT encoding number assigned to the interface, the packet data will contain an additional
	custom header used to convey WAN port related information.
	</UL>

<H4>ACN Custom Packet Header</H4>
	<UL>
	PCAP, Wireshark and Tcpdump enhancements have been added to the ACN to support
	monitoring of its ports, however each of these facilities were focused on capturing
	and displaying traffic from LAN interfaces.  The SITA extensions to these facilities
	are used to also provide the ability to capture, filter, and display information from
	an ACN's WAN ports.
	<P>
	Although each packet follows the standard libpcap format, since there are
	two types of interfaces that can be monitored, the format of the data
	packet varies slightly.
	<P>
	<UL TYPE=DISC>
		<LI>For Ethernet (like) devices, the packet format is unchanged from the standard Pcap format.
		<LI>For WAN devices, the packet contains a 5 byte header that precedes the actual captured data
			described by the following table:
	</UL>
	<P>
	<CENTER>
	<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3>
	<TR>	<TH>Octet</TH>
			<TH>Name</TH>
			<TH>Mask/Value</TH>
			<TH COLSPAN=2>Definition</TH>		</TR>

	<TR>	<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=3>0</TH>
			<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=3>Control / Status</TH>

			<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxxx0</FONT></TD>
			<TD>Transmitted by capture device</TD>
			<TD ROWSPAN=2 ALIGN=CENTER>(see 'Errors' octets)</TD>							</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxxx1</FONT></TD>
			<TD>Received by capture device</TD>												</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">1xxxxxxx</FONT></TD>
			<TD COLSPAN=2>No buffer was available during capture of previous packet.</TD>	</TR>

	<TR>	<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=8>1</TH>
			<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=8>Signals</TH>

			<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxxx1</FONT></TD>	<TD COLSPAN=2>DSR asserted</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxx1x</FONT></TD>	<TD COLSPAN=2>DTR asserted</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxx1xx</FONT></TD>	<TD COLSPAN=2>CTS asserted</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxx1xxx</FONT></TD>	<TD COLSPAN=2>RTS asserted</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxx1xxxx</FONT></TD>	<TD COLSPAN=2>DCD asserted</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xx1xxxxx</FONT></TD>	<TD COLSPAN=2>Undefined</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">x1xxxxxx</FONT></TD>	<TD COLSPAN=2>Undefined</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">1xxxxxxx</FONT></TD>	<TD COLSPAN=2>Undefined</TD>		</TR>

	<TR>	<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=9>2</TH>
			<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=9>Errors<BR>(octet 1)</TH>

			<TH>&nbsp;</TH>															<TH>Tx</TH>						<TH>Rx</TH>				</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxxx1</FONT></TD>	<TD>Underrun</TD>				<TD>Framing</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxx1x</FONT></TD>	<TD>CTS Lost</TD>				<TD>Parity</TD>			</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxx1xx</FONT></TD>	<TD>UART Error</TD>				<TD>Collision</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxx1xxx</FONT></TD>	<TD>Re-Tx Limit Reached</TD>	<TD>Long Frame</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxx1xxxx</FONT></TD>	<TD>Undefined</TD>				<TD>Short Frame</TD>	</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xx1xxxxx</FONT></TD>	<TD>Undefined</TD>				<TD>Undefined</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">x1xxxxxx</FONT></TD>	<TD>Undefined</TD>				<TD>Undefined</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">1xxxxxxx</FONT></TD>	<TD>Undefined</TD>				<TD>Undefined</TD>		</TR>

	<TR>	<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=9>3</TH>
			<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=9>Errors<BR>(octet 2)</TH>

			<TH>&nbsp;</TH>															<TH>Tx</TH>			<TH>Rx</TH>						</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxxx1</FONT></TD>	<TD>Undefined</TD>	<TD>Non-Octet Aligned</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxxx1x</FONT></TD>	<TD>Undefined</TD>	<TD>Abort Received</TD>			</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxxx1xx</FONT></TD>	<TD>Undefined</TD>	<TD>CD Lost</TD>				</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxxx1xxx</FONT></TD>	<TD>Undefined</TD>	<TD>Digital PLL Error</TD>		</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xxx1xxxx</FONT></TD>	<TD>Undefined</TD>	<TD>Overrun</TD>				</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">xx1xxxxx</FONT></TD>	<TD>Undefined</TD>	<TD>Frame Length Violation</TD>	</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">x1xxxxxx</FONT></TD>	<TD>Undefined</TD>	<TD>CRC Error</TD>				</TR>
	<TR>	<TD VALIGN=TOP ALIGN=CENTER><FONT FACE="COURIER">1xxxxxxx</FONT></TD>	<TD>Undefined</TD>	<TD>Break Received</TD>			</TR>

	<TR>	<TH VALIGN=TOP ALIGN=CENTER ROWSPAN=12>4</TH>
			<TH VALIGN=TOP ALIGN=CENTER>Protocol</TH>

			<TD COLSPAN=3>
				<CENTER>
				<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x01</TD>	<TD>-</TD>	<TD>LAPB (BOP)				<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x02</TD>	<TD>-</TD>	<TD>Ethernet				<SUP>1</SUP>		</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x03</TD>	<TD>-</TD>	<TD>Async (Interrupt IO)	<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x04</TD>	<TD>-</TD>	<TD>Async (Block IO)		<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x05</TD>	<TD>-</TD>	<TD>IPARS					<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x06</TD>	<TD>-</TD>	<TD>UTS						<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x07</TD>	<TD>-</TD>	<TD>PPP (HDLC)				<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x08</TD>	<TD>-</TD>	<TD>SDLC					<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x09</TD>	<TD>-</TD>	<TD>Token Ring				<SUP>1</SUP>		</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x10</TD>	<TD>-</TD>	<TD>I2C						<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x11</TD>	<TD>-</TD>	<TD>DPM Link				<SUP>&nbsp;</SUP>	</TD>	</TR>
					<TR VALIGN=BOTTOM><TD ALIGN=CENTER>0x12</TD>	<TD>-</TD>	<TD>Frame Relay (BOP)		<SUP>&nbsp;</SUP>	</TD>	</TR>
				</TABLE>
				</CENTER>
				<P>
				<STRONG>Note 1:</STRONG>
				Ethernet and Token Ring frames will never be sent as DLT_SITA (with the 5 octet header),
				but will be sent as their corresponding DLT types instead.
			</TD>
	</TR>
	</TABLE>
	</CENTER>
</UL>
<P>
</UL>
</UL>
