summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorcrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-11-22 10:32:46 +0000
committercrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-11-22 10:32:46 +0000
commit3f72e62677380addd3ba8bdc927958ae3b3a5bd9 (patch)
tree2da3663600a9217bee1eda0e3c18bb09ab21b072 /examples
parentd06f783541ed881455d7a7e40cb2dc3cc25bf687 (diff)
downloadATCD-3f72e62677380addd3ba8bdc927958ae3b3a5bd9.tar.gz
ChangeLogTag: Thu Nov 22 05:24:51 2001 Craig Rodrigues <crodrigu@bbn.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/QOS/Diffserv/Makefile35
-rw-r--r--examples/QOS/Diffserv/NOTES.txt58
-rw-r--r--examples/QOS/Diffserv/README104
-rw-r--r--examples/QOS/Diffserv/diffserv_test.cpp133
-rwxr-xr-xexamples/QOS/Diffserv/run_test.pl40
-rw-r--r--examples/QOS/Diffserv/server.cpp163
-rw-r--r--examples/QOS/Makefile296
7 files changed, 535 insertions, 294 deletions
diff --git a/examples/QOS/Diffserv/Makefile b/examples/QOS/Diffserv/Makefile
new file mode 100644
index 00000000000..cba0ef6f817
--- /dev/null
+++ b/examples/QOS/Diffserv/Makefile
@@ -0,0 +1,35 @@
+# $Id$
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+BIN = diffserv_test server
+
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+
+BUILD = $(VBIN)
+
+LSRC=$(addsuffix .cpp,$(BIN))
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(ACE_ROOT)/include/makeinclude/macros.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
+include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Dependencies
+#----------------------------------------------------------------------------
+
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
diff --git a/examples/QOS/Diffserv/NOTES.txt b/examples/QOS/Diffserv/NOTES.txt
new file mode 100644
index 00000000000..4e73c66af0f
--- /dev/null
+++ b/examples/QOS/Diffserv/NOTES.txt
@@ -0,0 +1,58 @@
+# $Id$
+
+Linux notes
+===========
+
+Under Linux kernel 2.4, the following DSCP values
+could not be set with the setsockopt call
+unless you run as root:
+
+EF, CS5, CS6, CS7
+
+Also, under Linux 2.4.2 kernel, if I could successfully
+set the 2 bits reserved for ECN in the Diffserv Field to
+0x00 or 0x02. However, the setsockopt call would
+fail if it was set to 0x01 or 0x03.
+
+According to the Linux Diffserv mailing list:
+http://diffserv.sourceforge.net
+http://www.geocrawler.com/archives/3/11111/2001/10/0/6761099/
+
+===========================================================================
+On Fri, Oct 05, 2001 at 08:18:06AM +0300, Pekka Savola wrote:
+> On Tue, 2 Oct 2001, Craig Rodrigues wrote:
+> > Can someone shed some light as to why I got this
+> > error under Linux? Is it configuration problem,
+> > or is there some sort of policy decision in the kernel that
+> > requires the process to be run as root when setting
+> > those DSCP values?
+>
+> A part of DSCP field was previously Precedence.
+>
+> Linux has required that in order to use 'Critical' or higher Precedence,
+> one must have CAP_NET_ADMIN capability, in most cases, root.
+>
+> I'm not one to say whether this restriction should be removed. Perhaps.
+>
+> --
+> Pekka Savola "Tell me of difficulties surmounted,
+> Netcore Oy not those you stumble over and fall"
+> Systems. Networks. Security. -- Robert Jordan: A Crown of Swords
+>
+===========================================================================
+
+FreeBSD notes
+=============
+Under FreeBSD 4.3, I encountered no problems
+setting DSCP or ECN values, and I could set all
+these values without being root.
+However, FreeBSD seems to be more fussy about the size of the parameter
+you pass into the setsockopt call. Make sure you get the
+size right, and cast it properly, ie. don't cast a short, or some
+other size.
+
+
+Solaris notes
+=============
+No problems setting DSCP or ECN values.
+
diff --git a/examples/QOS/Diffserv/README b/examples/QOS/Diffserv/README
new file mode 100644
index 00000000000..a15b2f2489c
--- /dev/null
+++ b/examples/QOS/Diffserv/README
@@ -0,0 +1,104 @@
+This directory contains an example which
+tests the setting of the Diffserv Codepoint (DSCP)
+values in the
+IP TOS field of a stream of UDP packets.
+
+Running the example
+===================
+
+(1) On one host, run:
+ server [UDP port number]
+
+ If port number is omitted, a default port number of 20002
+ is used.
+
+(2) On a second host, run:
+ diffserv_test [destination host] [destination port]
+
+ The host and port of where the server is running should
+ be specified.
+
+ A stream of UDP packets will be sent from to the server,
+ with various codepoints set.
+
+(3) Look at the Diffserv Field (formerly known as the TOS field)
+ of your packets, using a protocol analyzer, such as Ethereal.
+
+
+
+
+Introduction
+============
+In RFC 2474, the Type of Service (TOS) field in
+the IP header was renamed the Diffserv (DS) field.
+The DS field is one octet (8 bits).
+
+ 0 1 2 3 4 5 6 7
+ +---+---+---+---+---+---+---+---+
+ | DSCP | ECN |
+ +---+---+---+---+---+---+---+---+
+
+The first 6 bits of the field are
+reserved for the Diffserv Codepoint (DSCP).
+There are 64 possible values (0-63) for the DSCP.
+
+Bits 6 and 7 of the DS field are reserved
+for Explicit Congestion Notification (ECN).
+ECN is defined in RFC 3168.
+
+
+Per-Hop Behaviors (PHB)
+=======================
+
+A Per-Hop Behavior (PHB) is a description of the externally
+observable forwarding treatment applied at a differentiated
+services compliant node.
+
+Certain PHB's are defined in RFC's and associated with
+different DSCP values. Other values are undefined and left
+for experimentation. Please refer to the RFC's for a full
+explanation of the attributes of the various PHB's.
+
+
+DSCP value PHB RFC
+(binary)
+-----------------------------------------------------------
+000000 Default (Best Effort) 2474
+001000 Class Selector (CS1) 2474
+010000 Class Selector (CS2) 2474
+011000 Class Selector (CS3) 2474
+100000 Class Selector (CS4) 2474
+101000 Class Selector (CS5) 2474
+110000 Class Selector (CS6) 2474
+111000 Class Selector (CS7) 2474
+001010 Assured Forwarding (AF11) 2597
+001100 Assured Forwarding (AF12) 2597
+001110 Assured Forwarding (AF13) 2597
+010010 Assured Forwarding (AF21) 2597
+010100 Assured Forwarding (AF22) 2597
+010110 Assured Forwarding (AF23) 2597
+011010 Assured Forwarding (AF31) 2597
+011100 Assured Forwarding (AF32) 2597
+011110 Assured Forwarding (AF33) 2597
+100010 Assured Forwarding (AF41) 2597
+100100 Assured Forwarding (AF42) 2597
+100110 Assured Forwarding (AF43) 2597
+101110 Expedited Forwarding (EF) 2598
+
+
+References
+==========
+RFC 2474, "Definition of the Differentiated Services (DS Field)
+ in the IPv4 and IPv6 Headers", http://www.ietf.org/rfc/rfc2474.txt
+
+RFC 2475, "An Architecture for Differentiated Services",
+ http://www.ietf.org/rfc/rfc2475.txt
+
+RFC 2597, "Assured Forwarding PHB Group", http://www.ietf.org/rfc/rfc2597.txt
+
+RFC 2598, "An Expedited Forwarding PHB", http://www.ietf.org/rfc/rfc2598.txt
+
+RFC 3168, "The Addition of Explicit Congestion Notification (ECN)
+ to IP", http://www.ietf.org/rfc/rfc3168.txt
+
+Ethereal, http://www.ethereal.com
diff --git a/examples/QOS/Diffserv/diffserv_test.cpp b/examples/QOS/Diffserv/diffserv_test.cpp
new file mode 100644
index 00000000000..ac3acc2ed8f
--- /dev/null
+++ b/examples/QOS/Diffserv/diffserv_test.cpp
@@ -0,0 +1,133 @@
+//=============================================================================
+/**
+ * @file diffserv_test.cpp
+ *
+ * $Id$
+ *
+ * @author Craig Rodrigues <crodrigu@bbn.com>
+ * @brief Send UDP packets to a destination host and port.
+ * Change the Diffserv field to various values.
+ */
+//=============================================================================
+
+#include "ace/Log_Msg.h"
+#include "ace/SOCK_CODgram.h"
+#include "ace/INET_Addr.h"
+
+#define IPDSFIELD_DSCP_DEFAULT 0x00
+#define IPDSFIELD_DSCP_CS1 0x08
+#define IPDSFIELD_DSCP_CS2 0x10
+#define IPDSFIELD_DSCP_CS3 0x18
+#define IPDSFIELD_DSCP_CS4 0x20
+#define IPDSFIELD_DSCP_CS5 0x28
+#define IPDSFIELD_DSCP_CS6 0x30
+#define IPDSFIELD_DSCP_CS7 0x38
+#define IPDSFIELD_DSCP_AF11 0x0A
+#define IPDSFIELD_DSCP_AF12 0x0C
+#define IPDSFIELD_DSCP_AF13 0x0E
+#define IPDSFIELD_DSCP_AF21 0x12
+#define IPDSFIELD_DSCP_AF22 0x14
+#define IPDSFIELD_DSCP_AF23 0x16
+#define IPDSFIELD_DSCP_AF31 0x1A
+#define IPDSFIELD_DSCP_AF32 0x1C
+#define IPDSFIELD_DSCP_AF33 0x1E
+#define IPDSFIELD_DSCP_AF41 0x22
+#define IPDSFIELD_DSCP_AF42 0x24
+#define IPDSFIELD_DSCP_AF43 0x26
+#define IPDSFIELD_DSCP_EF 0x2E
+#define IPDSFIELD_ECT_MASK 0x02
+#define IPDSFIELD_CE_MASK 0x01
+
+int dscp [] =
+ {
+ IPDSFIELD_DSCP_DEFAULT ,
+ IPDSFIELD_DSCP_CS1 ,
+ IPDSFIELD_DSCP_CS2 ,
+ IPDSFIELD_DSCP_CS3 ,
+ IPDSFIELD_DSCP_CS4 ,
+ IPDSFIELD_DSCP_CS5 ,
+ IPDSFIELD_DSCP_CS6 ,
+ IPDSFIELD_DSCP_CS7 ,
+ IPDSFIELD_DSCP_AF11 ,
+ IPDSFIELD_DSCP_AF12 ,
+ IPDSFIELD_DSCP_AF13 ,
+ IPDSFIELD_DSCP_AF21 ,
+ IPDSFIELD_DSCP_AF22 ,
+ IPDSFIELD_DSCP_AF23 ,
+ IPDSFIELD_DSCP_AF31 ,
+ IPDSFIELD_DSCP_AF32 ,
+ IPDSFIELD_DSCP_AF33 ,
+ IPDSFIELD_DSCP_AF41 ,
+ IPDSFIELD_DSCP_AF42 ,
+ IPDSFIELD_DSCP_AF43 ,
+ IPDSFIELD_DSCP_EF
+ };
+
+const char *dscp_char[]=
+ {
+ "Normal",
+ "CS1",
+ "CS2",
+ "CS3",
+ "CS4",
+ "CS5",
+ "CS6",
+ "CS7",
+ "Assured Forwarding 11",
+ "Assured Forwarding 12",
+ "Assured Forwarding 13",
+ "Assured Forwarding 21",
+ "Assured Forwarding 22",
+ "Assured Forwarding 23",
+ "Assured Forwarding 31",
+ "Assured Forwarding 32",
+ "Assured Forwarding 33",
+ "Assured Forwarding 41",
+ "Assured Forwarding 42",
+ "Assured Forwarding 43",
+ "Expedited Forwarding"
+ };
+
+int
+main(int argc , char *argv[])
+{
+
+ if(argc != 3)
+ {
+ ACE_DEBUG((LM_DEBUG, "Usage:\n %s [destination host] [destination port]\n\n", argv[0]));
+ ACE_OS::exit(1);
+ }
+
+
+ char *buf = (char *)ACE_OS::malloc(20 * sizeof(char));
+ ACE_OS::strcpy(buf, "Hello");
+
+ ACE_SOCK_CODgram sock;
+ ACE_INET_Addr raddr(ACE_OS::atoi(argv[2]), argv[1]);
+
+ sock.open( raddr, ACE_Addr::sap_any, PF_INET, 0, 1);
+ int opt=0;
+ int ret =0, ret2=0;
+ unsigned int i;
+ for(i=0; i < 21; i++)
+ {
+ opt = dscp[i] << 2;
+ ret = sock.set_option(IPPROTO_IP, IP_TOS, (int *)&opt, (int)sizeof(opt) );
+ if(ret == -1){
+ ACE_DEBUG((LM_DEBUG, "setsockopt error: %m\n"));
+ }
+
+ for (int j=0; j<3; j++)
+ {
+ ret2 = sock.send(buf, ACE_OS::strlen(buf));
+ if(ret2 == -1){
+ ACE_DEBUG((LM_DEBUG, "send error: %m\n"));
+ }
+ printf("opt: %u dscp: %u, %s, setsockopt returned: %d, send returned: %d\n", opt, opt >> 2, dscp_char[i], ret, ret2);
+ ACE_OS::sleep(1);
+ }
+ }
+
+ ACE_OS::free(buf);
+ return 0;
+}
diff --git a/examples/QOS/Diffserv/run_test.pl b/examples/QOS/Diffserv/run_test.pl
new file mode 100755
index 00000000000..aef0765bac8
--- /dev/null
+++ b/examples/QOS/Diffserv/run_test.pl
@@ -0,0 +1,40 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$iorfile = PerlACE::LocalFile ("ior");
+
+unlink $iorfile;
+$status = 0;
+
+$CL = new PerlACE::Process ("diffserv_test", "localhost 20002");
+$SV = new PerlACE::Process ("server");
+
+$server = $SV->Spawn ();
+$SV->TimedWait(2);
+
+$client = $CL->SpawnWaitKill (200);
+
+if ($client != 0) {
+ $time = localtime;
+ print STDERR "ERROR: client returned $client at $time\n";
+ $status = 1;
+}
+
+$server = $SV->WaitKill (400);
+
+if ($server != 0) {
+ $time = localtime;
+ print STDERR "ERROR: server returned $server at $time\n";
+ $status = 1;
+}
+
+unlink $iorfile;
+
+exit $status;
diff --git a/examples/QOS/Diffserv/server.cpp b/examples/QOS/Diffserv/server.cpp
new file mode 100644
index 00000000000..2c082cdc1e7
--- /dev/null
+++ b/examples/QOS/Diffserv/server.cpp
@@ -0,0 +1,163 @@
+//=============================================================================
+/**
+ * @file server.cpp
+ *
+ * $Id$
+ *
+ * @author Craig Rodrigues <crodrigu@bbn.com>
+ * @brief Start a server which listens for UDP packets on a specified port.
+ */
+//=============================================================================
+
+#include "ace/Reactor.h"
+#include "ace/Process.h"
+#include "ace/SOCK_Dgram.h"
+#include "ace/INET_Addr.h"
+#include "ace/Log_Msg.h"
+
+// Port used to receive for dgrams.
+static u_short port1;
+
+class Dgram_Endpoint : public ACE_Event_Handler
+{
+public:
+ Dgram_Endpoint (const ACE_INET_Addr &local_addr);
+
+ // = Hook methods inherited from the <ACE_Event_Handler>.
+ virtual ACE_HANDLE get_handle (void) const;
+ virtual int handle_input (ACE_HANDLE handle);
+ virtual int handle_timeout (const ACE_Time_Value & tv,
+ const void *arg = 0);
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ int send (const char *buf, size_t len, const ACE_INET_Addr &);
+ // Send the <buf> to the peer.
+
+private:
+ ACE_SOCK_Dgram endpoint_;
+ // Wrapper for sending/receiving dgrams.
+};
+
+int
+Dgram_Endpoint::send (const char *buf,
+ size_t len,
+ const ACE_INET_Addr &addr)
+{
+ return this->endpoint_.send (buf, len, addr);
+}
+
+Dgram_Endpoint::Dgram_Endpoint (const ACE_INET_Addr &local_addr)
+ : endpoint_ (local_addr)
+{
+}
+
+ACE_HANDLE
+Dgram_Endpoint::get_handle (void) const
+{
+ return this->endpoint_.get_handle ();
+}
+
+int
+Dgram_Endpoint::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask)
+{
+ ACE_UNUSED_ARG (handle);
+
+ this->endpoint_.close ();
+ delete this;
+ return 0;
+}
+
+int
+Dgram_Endpoint::handle_input (ACE_HANDLE)
+{
+ char buf[BUFSIZ];
+ ACE_INET_Addr from_addr;
+
+ ssize_t n = this->endpoint_.recv (buf,
+ sizeof buf,
+ from_addr);
+
+ if (n == -1)
+ ACE_ERROR ((LM_ERROR,
+ "%p\n",
+ "handle_input"));
+ else
+ {
+ buf[n] = 0;
+ ACE_DEBUG ((LM_DEBUG,
+ "Received buf of size %d = %s\n",
+ n,
+ buf));
+ }
+ return 0;
+}
+
+int
+Dgram_Endpoint::handle_timeout (const ACE_Time_Value &,
+ const void *)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) timed out for endpoint\n"));
+ return 0;
+}
+
+static int
+run_test (u_short localport)
+{
+ ACE_INET_Addr local_addr (localport);
+
+ Dgram_Endpoint *endpoint;
+
+ ACE_NEW_RETURN (endpoint,
+ Dgram_Endpoint (local_addr),
+ -1);
+
+ ACE_DEBUG((LM_DEBUG, "Starting server on port %d\n",port1));
+
+ // Read data from other side.
+ if (ACE_Reactor::instance ()->register_handler
+ (endpoint,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Reactor::register_handler"),
+ -1);
+
+ int ret;
+ while(1){
+ ACE_Time_Value tv(10, 0);
+ ret = ACE_Reactor::instance ()->handle_events (&tv);
+ /* Error occurred while handling event */
+ if (ret < 0)
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "(%P|%t) %p\n",
+ "handle_events"),
+ -1);
+ }
+ /* We have timed out without handling an event, break out of loop */
+ if(ret == 0) break;
+ }
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ // Estabish call backs and socket names.
+
+ port1 = argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_SERVER_PORT;
+
+ if(argc < 3)
+ {
+ run_test (port1);
+ }
+ else{
+ ACE_DEBUG((LM_DEBUG, "\nUsage:\n %s [port number]\n", argv[0]));
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/examples/QOS/Makefile b/examples/QOS/Makefile
index 05f3be650d0..750aab5f183 100644
--- a/examples/QOS/Makefile
+++ b/examples/QOS/Makefile
@@ -5,7 +5,8 @@
DIRS = Simple \
Change_Sender_TSpec \
- Change_Receiver_FlowSpec
+ Change_Receiver_FlowSpec \
+ Diffserv
#----------------------------------------------------------------------------
# Include macros and targets
@@ -26,296 +27,3 @@ include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
# DO NOT DELETE THIS LINE -- g++dep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/QoS/QoS_Session.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/QoS/QoS_Session_Factory.h \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/QoS/ACE_QoS_Export.h \
- $(ACE_ROOT)/ace/QoS/QoS_Decorator.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/QoS/SOCK_Dgram_Mcast_QoS.h \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/QoS/QoS_Manager.h \
- $(ACE_ROOT)/ace/QoS/SOCK_Dgram_Mcast_QoS.i QoS_Util.h \
- Fill_ACE_QoS.h $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i QoS_Signal_Handler.h \
- Receiver_QoS_Event_Handler.h
-
-.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/QoS/QoS_Session.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/QoS/QoS_Session_Factory.h \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/QoS/ACE_QoS_Export.h \
- $(ACE_ROOT)/ace/QoS/QoS_Session_Impl.h \
- $(ACE_ROOT)/ace/QoS/QoS_Session_Impl.i \
- $(ACE_ROOT)/ace/QoS/QoS_Decorator.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/QoS/SOCK_Dgram_Mcast_QoS.h \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/QoS/QoS_Manager.h \
- $(ACE_ROOT)/ace/QoS/SOCK_Dgram_Mcast_QoS.i QoS_Util.h \
- Fill_ACE_QoS.h $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i QoS_Signal_Handler.h \
- Sender_QoS_Event_Handler.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY