You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/04/15 23:19:47 UTC
[18/50] git commit: TS-1067 Replace G_inkPipeInfo with a member
variable in UDPQueue
TS-1067 Replace G_inkPipeInfo with a member variable in UDPQueue
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/a544466d
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/a544466d
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/a544466d
Branch: refs/heads/3.3.x
Commit: a544466d3db83d221df45442a297e46be8b14fd1
Parents: 20dacb0
Author: Leif Hedstrom <zw...@apache.org>
Authored: Wed Mar 27 10:13:09 2013 -0700
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Tue Apr 2 13:53:42 2013 -0600
----------------------------------------------------------------------
iocore/net/I_UDPNet.h | 10 +----
iocore/net/P_UDPNet.h | 74 ++++++++++++++++++++--------------------
iocore/net/UnixUDPNet.cc | 16 ++++-----
3 files changed, 46 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a544466d/iocore/net/I_UDPNet.h
----------------------------------------------------------------------
diff --git a/iocore/net/I_UDPNet.h b/iocore/net/I_UDPNet.h
index 847e2c1..159e93b 100644
--- a/iocore/net/I_UDPNet.h
+++ b/iocore/net/I_UDPNet.h
@@ -49,14 +49,8 @@ public:
//this function was interanal intially.. this is required for public and
//interface probably should change.
- bool CreateUDPSocket(
- int *resfd,
- sockaddr const* remote_addr,
- sockaddr* local_addr,
- int* local_addr_len,
- Action ** status,
- int send_bufsize = 0, int recv_bufsize = 0
- );
+ bool CreateUDPSocket(int *resfd, sockaddr const* remote_addr, sockaddr* local_addr, int* local_addr_len,
+ Action ** status, int send_bufsize = 0, int recv_bufsize = 0);
/**
create UDPConnection
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a544466d/iocore/net/P_UDPNet.h
----------------------------------------------------------------------
diff --git a/iocore/net/P_UDPNet.h b/iocore/net/P_UDPNet.h
index 9cba1b3..e695383 100644
--- a/iocore/net/P_UDPNet.h
+++ b/iocore/net/P_UDPNet.h
@@ -56,29 +56,7 @@ struct UDPNetProcessorInternal : public UDPNetProcessor
extern UDPNetProcessorInternal udpNetInternal;
-class PacketQueue;
-class UDPQueue
-{
-public:
-
- void service(UDPNetHandler *);
-
- void SendPackets();
- void SendUDPPacket(UDPPacketInternal * p, int32_t pktLen);
-
- // Interface exported to the outside world
- void send(UDPPacket * p);
-
- InkAtomicList atomicQueue;
- ink_hrtime last_report;
- ink_hrtime last_service;
- int packets;
- int added;
-
- UDPQueue();
- ~UDPQueue();
-};
// 20 ms slots; 2048 slots => 40 sec. into the future
#define SLOT_TIME_MSEC 20
@@ -87,16 +65,16 @@ public:
class PacketQueue
{
-public:
- PacketQueue()
- : nPackets(0), now_slot(0)
- {
- lastPullLongTermQ = 0;
- init();
- }
+ public:
+ PacketQueue()
+ : nPackets(0), now_slot(0)
+ {
+ lastPullLongTermQ = 0;
+ init();
+ }
virtual ~ PacketQueue()
- { }
+ { }
int nPackets;
ink_hrtime lastPullLongTermQ;
@@ -250,7 +228,7 @@ public:
now_slot = s;
}
-private:
+ private:
void remove(UDPPacketInternal * e)
{
nPackets--;
@@ -259,7 +237,7 @@ private:
bucket[e->in_heap].remove(e);
}
-public:
+ public:
UDPPacketInternal *dequeue_ready(ink_hrtime t)
{
(void) t;
@@ -289,11 +267,37 @@ public:
return HRTIME_FOREVER;
}
-private:
+ private:
void kill_cancelled_events()
{ }
};
+
+class UDPQueue
+{
+ PacketQueue pipeInfo;
+ ink_hrtime last_report;
+ ink_hrtime last_service;
+ int packets;
+ int added;
+
+
+public:
+ InkAtomicList atomicQueue;
+
+ void service(UDPNetHandler *);
+
+ void SendPackets();
+ void SendUDPPacket(UDPPacketInternal * p, int32_t pktLen);
+
+ // Interface exported to the outside world
+ void send(UDPPacket * p);
+
+ UDPQueue();
+ ~UDPQueue();
+};
+
+
void initialize_thread_for_udp_net(EThread * thread);
struct UDPNetHandler: public Continuation
@@ -334,8 +338,4 @@ get_UDPNetHandler(EThread * t)
return (UDPNetHandler *)ETHREAD_GET_PTR(t, udpNetInternal.udpNetHandler_offset);
}
-// All of this stuff is for UDP egress b/w management
-// ToDo: It'd be nice to eliminate this entirely.... But we have no working use of UDPNet afaik. /leif
-extern PacketQueue G_inkPipeInfo;
-
#endif //__P_UDPNET_H_
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a544466d/iocore/net/UnixUDPNet.cc
----------------------------------------------------------------------
diff --git a/iocore/net/UnixUDPNet.cc b/iocore/net/UnixUDPNet.cc
index 446e349..ca428cb 100644
--- a/iocore/net/UnixUDPNet.cc
+++ b/iocore/net/UnixUDPNet.cc
@@ -58,8 +58,6 @@ int32_t g_udp_numSendRetries;
// Public functions
// See header for documentation
//
-PacketQueue G_inkPipeInfo;
-
int G_bwGrapherFd;
sockaddr_in6 G_bwGrapherLoc;
@@ -677,11 +675,11 @@ UDPQueue::service(UDPNetHandler * nh)
p->conn->lastPktStartTime = pktSendStartTime;
p->delivery_time = pktSendStartTime;
- G_inkPipeInfo.addPacket(p, now);
+ pipeInfo.addPacket(p, now);
}
}
- G_inkPipeInfo.advanceNow(now);
+ pipeInfo.advanceNow(now);
SendPackets();
timeSpent = ink_hrtime_to_msec(now - last_report);
@@ -715,8 +713,8 @@ sendPackets:
send_threshold_time = now + SLOT_TIME;
bytesThisPipe = (int32_t)bytesThisSlot;
- while ((bytesThisPipe > 0) && (G_inkPipeInfo.firstPacket(send_threshold_time))) {
- p = G_inkPipeInfo.getFirstPacket();
+ while ((bytesThisPipe > 0) && (pipeInfo.firstPacket(send_threshold_time))) {
+ p = pipeInfo.getFirstPacket();
pktLen = p->getPktLength();
if (p->conn->shouldDestroy())
@@ -740,14 +738,14 @@ sendPackets:
if ((bytesThisSlot > 0) && sentOne) {
// redistribute the slack...
now = ink_get_hrtime_internal();
- if (G_inkPipeInfo.firstPacket(now) == NULL) {
- G_inkPipeInfo.advanceNow(now);
+ if (pipeInfo.firstPacket(now) == NULL) {
+ pipeInfo.advanceNow(now);
}
goto sendPackets;
}
if ((g_udp_periodicFreeCancelledPkts) && (now - lastCleanupTime > ink_hrtime_from_sec(g_udp_periodicFreeCancelledPkts))) {
- G_inkPipeInfo.FreeCancelledPackets(g_udp_periodicCleanupSlots);
+ pipeInfo.FreeCancelledPackets(g_udp_periodicCleanupSlots);
lastCleanupTime = now;
}
}