summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2015-10-14 11:24:38 +0200
committerTobias Klauser <tklauser@distanz.ch>2015-10-14 11:24:38 +0200
commitdc2ac62da99712b8f3d7ecf0fbf9904e143869e1 (patch)
treeca81ab6b4512637c81f705b45cd3fb453b78c402
parent68bc34c0e88b6eff8279201bdc2d16dab7a4dd68 (diff)
trafgen: Move checking of dynamic packet elements to header
Move has_dynamic_elems() to to trafgen_conf.h, rename it to packet_dyn_has_elems() and use it to check whether dynamic packet elements are present. Also change the return type to bool and use || instead of + to potentially make use of short-circuit evaluation. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r--trafgen.c4
-rw-r--r--trafgen_conf.h5
-rw-r--r--trafgen_parser.y7
3 files changed, 8 insertions, 8 deletions
diff --git a/trafgen.c b/trafgen.c
index 800ba02..16a078c 100644
--- a/trafgen.c
+++ b/trafgen.c
@@ -543,7 +543,7 @@ static void xmit_slowpath_or_die(struct ctx *ctx, unsigned int cpu, unsigned lon
while (likely(sigint == 0 && num > 0 && plen > 0)) {
pktd = &packet_dyn[i];
- if (pktd->clen + pktd->rlen + pktd->slen) {
+ if (packet_dyn_has_elems(pktd)) {
apply_counter(i);
apply_randomizer(i);
apply_csum16(i);
@@ -651,7 +651,7 @@ static void xmit_fastpath_or_die(struct ctx *ctx, unsigned int cpu, unsigned lon
hdr->tp_h.tp_len = packets[i].len;
pktd = &packet_dyn[i];
- if (pktd->clen + pktd->rlen + pktd->slen) {
+ if (packet_dyn_has_elems(pktd)) {
apply_counter(i);
apply_randomizer(i);
apply_csum16(i);
diff --git a/trafgen_conf.h b/trafgen_conf.h
index aee385e..d2df1f4 100644
--- a/trafgen_conf.h
+++ b/trafgen_conf.h
@@ -45,6 +45,11 @@ struct packet_dyn {
size_t slen;
};
+static inline bool packet_dyn_has_elems(struct packet_dyn *p)
+{
+ return (p->rlen || p->slen || p->clen);
+}
+
extern void compile_packets(char *file, bool verbose, unsigned int cpu, bool invoke_cpp);
extern void cleanup_packets(void);
diff --git a/trafgen_parser.y b/trafgen_parser.y
index 8eab614..88daf7a 100644
--- a/trafgen_parser.y
+++ b/trafgen_parser.y
@@ -66,11 +66,6 @@ static inline int test_ignore(void)
return 1;
}
-static inline int has_dynamic_elems(struct packet_dyn *p)
-{
- return (p->rlen + p->slen + p->clen);
-}
-
static inline void __init_new_packet_slot(struct packet *slot)
{
slot->payload = NULL;
@@ -230,7 +225,7 @@ static void set_csum16(size_t from, size_t to, enum csum which)
bug_on(!(from < to));
- if (has_dynamic_elems(pktd) || to >= pkt->len || is_dynamic_csum(which))
+ if (packet_dyn_has_elems(pktd) || to >= pkt->len || is_dynamic_csum(which))
__set_csum16_dynamic(from, to, which);
else
__set_csum16_static(from, to, which);