Added quantiling UDAFs
[com/gs-lite.git] / src / lib / gscphost / lfta.c
index d32232a..b0afc5e 100644 (file)
@@ -1,72 +1,72 @@
-/* ------------------------------------------------
- Copyright 2014 AT&T Intellectual Property
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ------------------------------------------- */
-#include <gsconfig.h>
-#include <fta.h>
-#include <callbackregistries.h>
-#include <ipcencoding.h>
-#include <stdio.h>
-#include "rdtsc.h"
-#include "packet.h"
-#include "gscpipc.h"
-
-// new
-//gs_uint64_t lfta_prefilter(struct packet * p);
-extern gs_uint64_t (*lfta_prefilter)(void *pkt);
-
-struct pr_stats {
-       gs_uint64_t process;
-       gs_uint64_t packets;
-};
-
-void rts_fta_process_packet(struct packet * p)
-{
-    struct FTA * f;
-       gs_uint64_t prefilter;
-       static gs_uint32_t t=0;
-       static struct pr_stats s = {0};
-       gs_uint64_t s1;
-       gs_uint64_t s2;
-    prefilter=(*lfta_prefilter)(p);
-    
-    if (ftaexec_start()<0) {
-        gslog(LOG_EMERG,"GSCPRTS::error::could not init "
-              "FTA list itteration\n");
-        return;
-    }
-    s1=rdtsc();
-    while ((f=ftaexec_next())!=0) {
-        //             fprintf(stderr,"%llu %llu %llu\n",f->prefilter,prefilter,~( (prefilter&(f->prefilter)) | (~(f->prefilter)) ));
-               if (~( (prefilter&(f->prefilter)) | (~(f->prefilter)) ) == 0)
-                       f->accept_packet(f,0,p,0);
-    }
-    s2=rdtsc();
-    s.process+=(s2-s1);
-    s.packets++;
-    intuple++;
-    cycles+=(s2-s1);
-}
-
-void rts_fta_done()
-{
-    struct FTA * f;
-    if (ftaexec_start()<0) {
-        gslog(LOG_EMERG,"GSCPRTS::error::could not init "
-              "FTA list itteration\n");
-        return;
-    }
-    while ((f=ftaexec_next())!=0) {
-        f->control_fta(f,FTA_COMMAND_FILE_DONE,0,0);
-    }
-}
+/* ------------------------------------------------\r
+ Copyright 2014 AT&T Intellectual Property\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+ ------------------------------------------- */\r
+#include <gsconfig.h>\r
+#include <fta.h>\r
+#include <callbackregistries.h>\r
+#include <ipcencoding.h>\r
+#include <stdio.h>\r
+#include "rdtsc.h"\r
+#include "packet.h"\r
+#include "gscpipc.h"\r
+\r
+// new\r
+//gs_uint64_t lfta_prefilter(struct packet * p);\r
+extern gs_uint64_t (*lfta_prefilter)(void *pkt);\r
+\r
+struct pr_stats {\r
+       gs_uint64_t process;\r
+       gs_uint64_t packets;\r
+};\r
+\r
+void rts_fta_process_packet(struct packet * p)\r
+{\r
+    struct FTA * f;\r
+       gs_uint64_t prefilter;\r
+       static gs_uint32_t t=0;\r
+       static struct pr_stats s = {0};\r
+       gs_uint64_t s1;\r
+       gs_uint64_t s2;\r
+    prefilter=(*lfta_prefilter)(p);\r
+    \r
+    if (ftaexec_start()<0) {\r
+        gslog(LOG_EMERG,"GSCPRTS::error::could not init "\r
+              "FTA list itteration\n");\r
+        return;\r
+    }\r
+    s1=rdtsc();\r
+    while ((f=ftaexec_next())!=0) {\r
+        //             fprintf(stderr,"%llu %llu %llu\n",f->prefilter,prefilter,~( (prefilter&(f->prefilter)) | (~(f->prefilter)) ));\r
+               if (~( (prefilter&(f->prefilter)) | (~(f->prefilter)) ) == 0)\r
+                       f->accept_packet(f,0,p,0);\r
+    }\r
+    s2=rdtsc();\r
+    s.process+=(s2-s1);\r
+    s.packets++;\r
+    intuple++;\r
+    cycles+=(s2-s1);\r
+}\r
+\r
+void rts_fta_done()\r
+{\r
+    struct FTA * f;\r
+    if (ftaexec_start()<0) {\r
+        gslog(LOG_EMERG,"GSCPRTS::error::could not init "\r
+              "FTA list itteration\n");\r
+        return;\r
+    }\r
+    while ((f=ftaexec_next())!=0) {\r
+        f->control_fta(f,FTA_COMMAND_FILE_DONE,0,0);\r
+    }\r
+}\r