Issue using ZC (zerocopy) interface notation

Chris Wakelin c.d.wakelin at reading.ac.uk
Tue Dec 23 12:13:47 EST 2014


Alas, I'm not too familiar with libpcap interfaces. (I never managed to
solve the poll() issues with Argus and PF_RING DNA, though spent several
hours trying! In the end I just put up with it using a whole CPU core.)

I know that PF_RING is using a comparatively old version (4.1.1) and has
a few proprietary extensions to it. ZC is under active development
though, and at least seems to be a step towards more standard libpcap usage.

It might be worth raising this with the PF_RING devs; what particular
libpcap call do you think is giving the wrong answer?

Best Wishes,
Chris

On 23/12/14 16:55, Carter Bullard wrote:
> Hey Chris,
> Thanks for the update !!!  I’ll add this to argus-3.0.9, which we’ll startup the first of 2015.
> 
> I’m not that happy about all the exceptional logic we’re building for special devices.  This specific line of code is an exception that fakes out argus into thinking the interface is up, when the ioctl’s aren’t available.
> 
> Any idea if libpcap is doing anything special in this area that introduces new interface routines that Argus should be using ????  We do have calls to routines like pcap_findalldevs() which may have these interfaces in the list, allowing us to know, rather than having to guess, if these interfaces need exceptional logic.
> Is PF_RING and libpcap behaving well together, such that we can lean on libpcap some more for these special devices ??
> 
> Carter
> 
>> On Dec 23, 2014, at 11:37 AM, Chris Wakelin <c.d.wakelin at reading.ac.uk> wrote:
>>
>> It works for me (at least using zbalance_ipc) with this patch against 3.0.8:
>>
>> --- argus/ArgusSource.c.orig    2014-07-14 23:51:49.000000000 +0100
>> +++ argus/ArgusSource.c 2014-09-05 11:09:11.690740097 +0100
>> @@ -4382,7 +4382,7 @@
>>    if (device == NULL)
>>       return;
>>
>> -   if ((strstr(device->name, "dag")) || (strstr(device->name, "napa"))) {
>> +   if ((strstr(device->name, "dag")) || (strstr(device->name, "napa"))
>> || (strstr(device->name, "dna")) || (strstr(device->name, "zc")) ||
>> ((strstr(device->name, "eth")) && (strstr(device->name, "@")))) {
>>       for (i = 0; i < src->ArgusInterfaces; i++) {
>>          if (src->ArgusInterface[i].ArgusPd)
>>             bzero ((char *)&src->ArgusInterface[i].ifr, sizeof(ifr));
>>
>> It even manages not to use 100% CPU now, so I guess polling is working
>> better in ZC than DNA.
>>
>> Best Wishes,
>> Chris
>>
>> On 23/12/14 16:16, Carter Bullard wrote:
>>> Hey Jesse,
>>> No, it looks like we try to open the device, but like the other programs, we don’t think there is a device ‘zc:99 at 0’.
>>> Argus gets the error, and since we don’t have any exceptional logic to look for the device somewhere else, we just chug along.  Maybe the device will appear later.
>>>
>>> I suspect that there is some logic in tcpdump to do something else for PF_RING’s pseudo interfaces ???
>>> I’ll try to take a look, but its holiday time !!!!!
>>>
>>> Carter
>>>
>>>> On Dec 22, 2014, at 5:00 PM, Jesse Bowling <jessebowling at gmail.com> wrote:
>>>>
>>>>
>>>> On Dec 22, 2014, at 3:06 PM, Carter Bullard <carter at qosient.com> wrote:
>>>>
>>>>> Hmmmm, we must need to do something specific for PF_RING….
>>>>> you say there are examples ???  which version of tcpdump works ??
>>>>
>>>> The PF_RING team ships with tcpdump 4.1.1 included in source (which works) and I just successfully compiled the latest version 4.6.2 against the PF_RING provided libpcap in /usr/local/lib and it also works fine.
>>>>
>>>> For examples I really only have what’s in the first email (if I understand what you’re asking)...My assumption was that something was choking on the colon used in ‘zc:99 at 0’ since the switch allows for things like ‘ind:’ and ‘dup:’, etc...
>>>>
>>>> Here’s a giant wall of debug text in case that’s helpful...
>>>>
>>>> Cheers,
>>>>
>>>> Jesse
>>>>
>>>> # argus -D 6 -i 'zc:99 at 0' -w - |ra -r - 
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.502856 ArgusCalloc (1, 525024) returning 0x7fc6eced4010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.502996 ArgusNewModeler() returning 0x7fc6eced4010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503019 ArgusCalloc (1, 4237776) returning 0x7fc6ebe15010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503034 ArgusNewSource(0x7fc6eced4010) returning 0x7fc6ebe15010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503046 ArgusCalloc (1, 336) returning 0xb080d0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503056 ArgusCalloc (1, 152) returning 0xb08b50
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503064 ArgusNewQueue () returning 0xb08b50
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503073 ArgusCalloc (1, 152) returning 0xb08bf0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503081 ArgusNewList () returning 0xb08bf0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503088 ArgusCalloc (1, 152) returning 0xb08c90
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503095 ArgusNewList () returning 0xb08c90
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503102 ArgusNewOutput() returning retn 0xb080d0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503119 setArgusMarReportInterval(60) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503141 clearArgusDevice(0x7fc6ebe15010) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503151 ArgusCalloc (1, 152) returning 0xb08d30
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503159 ArgusNewList () returning 0xb08d30
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503174 ArgusCalloc (1, 64) returning 0xb08dd0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503183 ArgusPushFrontList (0xb08d30, 0xb08dd0, 1) returning 0x336b
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503192 setArgusDevice(zc:99 at 0 ) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503200 ArgusDeleteList ((nil), 2) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503208 ArgusCalloc (1, 152) returning 0xb08e20
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503216 ArgusNewList () returning 0xb08e20
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503223 ArgusCalloc (1, 24) returning 0xb08230
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503230 ArgusPushFrontList (0xb08e20, 0xb08230, 1) returning 0x336b
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503240 setArgusInterfaceStatus(0x7fc6ebe15010, 1)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.503267 ArgusCalloc (1, 592072) returning 0x7fc6ece43010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516046 ArgusCalloc (1, 128) returning 0xbb8280
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516073 ArgusGenerateInitialMar() returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516082 ArgusCalloc (1, 168) returning 0xbb8310
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516100 ArgusCalloc (1, 262256) returning 0x7fc6ece02010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516109 ArgusCalloc (1, 152) returning 0xbb83c0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516117 ArgusNewList () returning 0xbb83c0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516128 ArgusNewSocket (1) returning 0x7fc6ece02010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516143 ArgusPushBackList (0xb08e20, 0xb08230, 1) returning 1
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516152 ArgusDeleteList (0xb08e20, 2) 1 items on list
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516160 ArgusFree (0xb08230)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516169 ArgusFree (0xb08e20)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516175 ArgusDeleteList (0xb08e20, 2) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516235 ArgusInitOutput() done
>>>> ArgusWarning: 22 Dec 14 16:57:12.516258 started
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516277 ArgusCalloc (1, 4237776) returning 0x7fc6eaffd010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516286 ArgusCalloc (1, 152) returning 0xb08e20
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516294 ArgusNewList () returning 0xb08e20
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516305 ArgusCloneSource(0x7fc6ebe15010) returning 0x7fc6eaffd010
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516313 clearArgusDevice(0x7fc6eaffd010) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.516321 ArgusPushBackList (0xb08e20, 0xb08dd0, 1) returning 1
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.516331 ArgusOutputProcess(0xb080d0) starting
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.516367 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.516375 ArgusOutputProcess() waiting for input list
>>>>   ArgusAlert: 22 Dec 14 16:57:12.535223 ArgusOpenInterface: pcap_open_live zc:99 at 0: No such device exists (SIOCGIFHWADDR: No such device)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.535245 ArgusOpenInterface(0x7fc6eaffd010, 'zc:99 at 0') returning 0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.535258 ArgusPushBackList (0xb08e20, 0xb08dd0, 1) returning 1
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.535266 ArgusInitSource: no packet sources for this device.
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:12.535274 ArgusInitSource(0x7fc6eaffd010) returning 0
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.616511 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.616557 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.616566 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.616573 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.716710 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.716741 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.716753 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.716759 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.816904 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.816935 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.816946 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.816955 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.917083 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.917107 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.917116 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:12.917123 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.017240 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.017270 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.017279 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.017286 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.117440 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.117468 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.117477 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.117484 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.217640 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.217668 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.217677 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.217684 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.317850 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.317878 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.317887 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.317894 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.418016 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.418044 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.418053 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.418060 ArgusOutputProcess() waiting for input list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.518186 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.518209 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.518218 ArgusOutputProcess() looping
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.518225 ArgusOutputProcess() waiting for input list
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535409 main() ArgusSourceProcess returned: shuting down
>>>> ArgusWarning: 22 Dec 14 16:57:13.535731 ArgusShutDown(0)
>>>> ArgusWarning: 22 Dec 14 16:57:13.535743 argus() [0x40665b]
>>>> ArgusWarning: 22 Dec 14 16:57:13.535749 argus() [0x405fea]
>>>> ArgusWarning: 22 Dec 14 16:57:13.535754 /lib64/libc.so.6(__libc_start_main+0xf5) [0x7fc6ec241af5]
>>>> ArgusWarning: 22 Dec 14 16:57:13.535759 argus() [0x404179]
>>>>
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535768 ArgusShutDown(Normal Shutdown)
>>>>
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535809 ArgusCloseSource(0x7fc6ebe15010) starting
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535818 ArgusDeleteList (0xb08d30, 3) 0 items on list
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535826 ArgusFree (0xb08d30)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535834 ArgusDeleteList (0xb08d30, 3) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535843 ArgusModelerCleanUp (0x7fc6eced4010) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535854 ArgusCloseModeler(0x7fc6eced4010) Total Sends 0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535863 ArgusCloseSource(0x7fc6ebe15010) done
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535870 ArgusCloseEvents() done
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535879 ArgusModelerCleanUp (0x7fc6eced4010) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535886 ArgusCloseModeler(0x7fc6eced4010) Total Sends 0
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.535893 ArgusCloseOutput(0xb080d0) scheduling closure after 0 records
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618344 ArgusOutputProcess() checking out clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618373 ArgusOutputProcess() done with clients
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618382 ArgusOutputProcess(0xb080d0) shuting down 0
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618398 ArgusWriteOutSocket (0xb080d0, 0xbb8310) returning 0
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618407 ArgusDeleteList (0xbb83c0, 4) 0 items on list
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618415 ArgusFree (0xbb83c0)
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618421 ArgusDeleteList (0xbb83c0, 4) returning
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618518 ArgusFree (0x7fc6ece02010)
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618526 ArgusDeleteSocket (0x7fc6ece02010) returning
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618535 ArgusFree (0xbb8310)
>>>> argus[13163.0087c0ebc67f0000]: 22 Dec 14 16:57:13.618540 ArgusOutputProcess(0xb080d0) exiting
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618696 ArgusDeleteList (0xb08c90, 4) 0 items on list
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618729 ArgusFree (0xb08c90)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618741 ArgusDeleteList (0xb08c90, 4) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618750 ArgusDeleteList (0xb08bf0, 4) 0 items on list
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618758 ArgusFree (0xb08bf0)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618765 ArgusDeleteList (0xb08bf0, 4) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618772 ArgusFree (0xb08b50)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618780 ArgusDeleteQueue (0xb08b50) returning
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.618787 ArgusFree (0xbb8280)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619847 ArgusFree (0x7fc6ece43010)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619861 ArgusCloseOutput(0xb080d0) done
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619869 ArgusFree (0xb080d0)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619937 ArgusFree (0x7fc6eced4010)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619947 ArgusDeleteSource(0x7fc6ebe15010) starting
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619961 ArgusFree (0x7fc6ebe15010)
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619970 ArgusCloseSource(0x7fc6ebe15010) done
>>>> argus[13163.4057f5ecc67f0000]: 22 Dec 14 16:57:13.619986 ArgusShutDown()
>>>>
>>>>
>>>
>>
>> -- 
>> --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
>> Christopher Wakelin,                           c.d.wakelin at reading.ac.uk
>> IT Services Centre, The University of Reading,  Tel: +44 (0)118 378 2908
>> Whiteknights, Reading, RG6 6AF, UK              Fax: +44 (0)118 975 3094
>>
> 

-- 
--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
Christopher Wakelin,                           c.d.wakelin at reading.ac.uk
IT Services Centre, The University of Reading,  Tel: +44 (0)118 378 2908
Whiteknights, Reading, RG6 6AF, UK              Fax: +44 (0)118 975 3094



More information about the argus mailing list