diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/read_config_lex.l | 14 | ||||
-rw-r--r-- | src/read_config_yy.y | 10 | ||||
-rw-r--r-- | src/sync-alarm.c (renamed from src/sync-notrack.c) | 26 | ||||
-rw-r--r-- | src/sync-ftfw.c (renamed from src/sync-nack.c) | 60 | ||||
-rw-r--r-- | src/sync-mode.c | 8 |
7 files changed, 66 insertions, 56 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 8f5c620..1fac3dc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,7 +15,7 @@ conntrackd_SOURCES = alarm.c main.c run.c hash.c buffer.c \ ignore_pool.c \ cache.c cache_iterators.c \ cache_lifetime.c cache_timer.c cache_wt.c \ - sync-mode.c sync-notrack.c sync-nack.c \ + sync-mode.c sync-alarm.c sync-ftfw.c \ traffic_stats.c stats-mode.c \ network.c \ state_helper.c state_helper_tcp.c \ @@ -46,7 +46,7 @@ static const char usage_client_commands[] = " -k, kill conntrack daemon\n" " -s, dump statistics\n" " -R, resync with kernel conntrack table\n" - " -n, request resync with other node (only NACK mode)\n" + " -n, request resync with other node (only FT-FW mode)\n" " -x, dump cache in XML format (requires -i or -e)"; static const char usage_options[] = diff --git a/src/read_config_lex.l b/src/read_config_lex.l index 844cae1..55794a8 100644 --- a/src/read_config_lex.l +++ b/src/read_config_lex.l @@ -45,6 +45,8 @@ ip6 {ip6_form1}|{ip6_form2} string [a-zA-Z][a-zA-Z0-9]* persistent [P|p][E|e][R|r][S|s][I|i][S|s][T|t][E|e][N|n][T|T] nack [N|n][A|a][C|c][K|k] +alarm [A|a][L|l][A|a][R|r][M|m] +ftfw [F|f][T|t][F|f][W|w] %% "UNIX" { return T_UNIX; } @@ -107,8 +109,16 @@ nack [N|n][A|a][C|c][K|k] {ip4} { yylval.string = strdup(yytext); return T_IP; } {ip6} { yylval.string = strdup(yytext); return T_IP; } {path} { yylval.string = strdup(yytext); return T_PATH_VAL; } -{persistent} { return T_PERSISTENT; } -{nack} { return T_NACK; } +{alarm} { return T_ALARM; } +{persistent} { printf("WARNING: Now `persistent' mode is called " + "`alarm'. Please, update your " + "your conntrackd.conf file.\n"); + return T_ALARM; } +{ftfw} { return T_FTFW; } +{nack} { printf("WARNING: Now `nack' mode is called " + "`ftfw'. Please, update your " + "your conntrackd.conf file.\n"); + return T_FTFW; } {string} { yylval.string = strdup(yytext); return T_STRING; } {comment} ; diff --git a/src/read_config_yy.y b/src/read_config_yy.y index e5ce195..795aae9 100644 --- a/src/read_config_yy.y +++ b/src/read_config_yy.y @@ -45,7 +45,7 @@ struct ct_conf conf; %token T_LOCK T_STRIP_NAT T_BUFFER_SIZE_MAX_GROWN T_EXPIRE T_TIMEOUT %token T_GENERAL T_SYNC T_STATS T_RELAX_TRANSITIONS T_BUFFER_SIZE T_DELAY %token T_SYNC_MODE T_LISTEN_TO T_FAMILY T_RESEND_BUFFER_SIZE -%token T_PERSISTENT T_NACK T_CHECKSUM T_WINDOWSIZE T_ON T_OFF +%token T_ALARM T_FTFW T_CHECKSUM T_WINDOWSIZE T_ON T_OFF %token T_REPLICATE T_FOR T_IFACE %token T_ESTABLISHED T_SYN_SENT T_SYN_RECV T_FIN_WAIT %token T_CLOSE_WAIT T_LAST_ACK T_TIME_WAIT T_CLOSE T_LISTEN @@ -369,14 +369,14 @@ sync_line: refreshtime | cache_writethrough ; -sync_mode_persistent: T_SYNC_MODE T_PERSISTENT '{' sync_mode_persistent_list '}' +sync_mode_persistent: T_SYNC_MODE T_ALARM '{' sync_mode_persistent_list '}' { - conf.flags |= SYNC_MODE_PERSISTENT; + conf.flags |= SYNC_MODE_ALARM; }; -sync_mode_nack: T_SYNC_MODE T_NACK '{' sync_mode_nack_list '}' +sync_mode_nack: T_SYNC_MODE T_FTFW '{' sync_mode_nack_list '}' { - conf.flags |= SYNC_MODE_NACK; + conf.flags |= SYNC_MODE_FTFW; }; sync_mode_persistent_list: diff --git a/src/sync-notrack.c b/src/sync-alarm.c index 8588ecf..a0791ac 100644 --- a/src/sync-notrack.c +++ b/src/sync-alarm.c @@ -36,7 +36,7 @@ static void refresher(struct alarm_list *a, void *data) mcast_buffered_send_netmsg(STATE_SYNC(mcast_client), net, len); } -static void cache_notrack_add(struct us_conntrack *u, void *data) +static void cache_alarm_add(struct us_conntrack *u, void *data) { struct alarm_list *alarm = data; @@ -47,33 +47,33 @@ static void cache_notrack_add(struct us_conntrack *u, void *data) add_alarm(alarm); } -static void cache_notrack_update(struct us_conntrack *u, void *data) +static void cache_alarm_update(struct us_conntrack *u, void *data) { struct alarm_list *alarm = data; mod_alarm(alarm, (random() % conf.refresh) + 1); } -static void cache_notrack_destroy(struct us_conntrack *u, void *data) +static void cache_alarm_destroy(struct us_conntrack *u, void *data) { struct alarm_list *alarm = data; del_alarm(alarm); } -static struct cache_extra cache_notrack_extra = { +static struct cache_extra cache_alarm_extra = { .size = sizeof(struct alarm_list), - .add = cache_notrack_add, - .update = cache_notrack_update, - .destroy = cache_notrack_destroy + .add = cache_alarm_add, + .update = cache_alarm_update, + .destroy = cache_alarm_destroy }; -static int notrack_recv(const struct nethdr *net) +static int alarm_recv(const struct nethdr *net) { unsigned int exp_seq; /* * Ignore error messages: Although this message type is not ever - * generated in notrack mode, we don't want to crash the daemon - * if someone nuts mixes nack and notrack. + * generated in alarm mode, we don't want to crash the daemon + * if someone nuts mixes ftfw and alarm. */ if (net->flags) return 1; @@ -96,9 +96,9 @@ static int notrack_recv(const struct nethdr *net) return 0; } -struct sync_mode notrack = { +struct sync_mode alarm = { .internal_cache_flags = LIFETIME, .external_cache_flags = TIMER | LIFETIME, - .internal_cache_extra = &cache_notrack_extra, - .recv = notrack_recv, + .internal_cache_extra = &cache_alarm_extra, + .recv = alarm_recv, }; diff --git a/src/sync-nack.c b/src/sync-ftfw.c index fa61be4..2f27fe6 100644 --- a/src/sync-nack.c +++ b/src/sync-ftfw.c @@ -40,22 +40,22 @@ static unsigned int tx_list_len; static struct buffer *rs_queue; static struct buffer *tx_queue; -struct cache_nack { +struct cache_ftfw { struct list_head rs_list; struct list_head tx_list; u_int32_t seq; }; -static void cache_nack_add(struct us_conntrack *u, void *data) +static void cache_ftfw_add(struct us_conntrack *u, void *data) { - struct cache_nack *cn = data; + struct cache_ftfw *cn = data; INIT_LIST_HEAD(&cn->rs_list); INIT_LIST_HEAD(&cn->tx_list); } -static void cache_nack_del(struct us_conntrack *u, void *data) +static void cache_ftfw_del(struct us_conntrack *u, void *data) { - struct cache_nack *cn = data; + struct cache_ftfw *cn = data; if (cn->rs_list.next == &cn->rs_list && cn->rs_list.prev == &cn->rs_list) @@ -64,13 +64,13 @@ static void cache_nack_del(struct us_conntrack *u, void *data) list_del(&cn->rs_list); } -static struct cache_extra cache_nack_extra = { - .size = sizeof(struct cache_nack), - .add = cache_nack_add, - .destroy = cache_nack_del +static struct cache_extra cache_ftfw_extra = { + .size = sizeof(struct cache_ftfw), + .add = cache_ftfw_add, + .destroy = cache_ftfw_del }; -static int nack_init() +static int ftfw_init() { tx_queue = buffer_create(CONFIG(resend_buffer_size)); if (tx_queue == NULL) { @@ -90,7 +90,7 @@ static int nack_init() return 0; } -static void nack_kill() +static void ftfw_kill() { buffer_destroy(rs_queue); buffer_destroy(tx_queue); @@ -110,7 +110,7 @@ static void tx_queue_add_ctlmsg(u_int32_t flags, u_int32_t from, u_int32_t to) static int do_cache_to_tx(void *data1, void *data2) { struct us_conntrack *u = data2; - struct cache_nack *cn = cache_get_extra(STATE_SYNC(internal), u); + struct cache_ftfw *cn = cache_get_extra(STATE_SYNC(internal), u); /* add to tx list */ list_add(&cn->tx_list, &tx_list); @@ -119,7 +119,7 @@ static int do_cache_to_tx(void *data1, void *data2) return 0; } -static int nack_local(int fd, int type, void *data) +static int ftfw_local(int fd, int type, void *data) { int ret = 1; @@ -171,7 +171,7 @@ static void rs_list_to_tx(struct cache *c, unsigned int from, unsigned int to) struct us_conntrack *u; list_for_each(n, &rs_list) { - struct cache_nack *cn = (struct cache_nack *) n; + struct cache_ftfw *cn = (struct cache_ftfw *) n; struct us_conntrack *u; u = cache_get_conntrack(STATE_SYNC(internal), cn); @@ -188,7 +188,7 @@ static void rs_list_empty(struct cache *c, unsigned int from, unsigned int to) struct list_head *n, *tmp; list_for_each_safe(n, tmp, &rs_list) { - struct cache_nack *cn = (struct cache_nack *) n; + struct cache_ftfw *cn = (struct cache_ftfw *) n; struct us_conntrack *u; u = cache_get_conntrack(STATE_SYNC(internal), cn); @@ -200,7 +200,7 @@ static void rs_list_empty(struct cache *c, unsigned int from, unsigned int to) } } -static int nack_recv(const struct nethdr *net) +static int ftfw_recv(const struct nethdr *net) { static unsigned int window = 0; unsigned int exp_seq; @@ -246,17 +246,17 @@ static int nack_recv(const struct nethdr *net) return 0; } -static void nack_send(struct nethdr *net, struct us_conntrack *u) +static void ftfw_send(struct nethdr *net, struct us_conntrack *u) { struct netpld *pld = NETHDR_DATA(net); - struct cache_nack *cn; + struct cache_ftfw *cn; HDR_NETWORK2HOST(net); switch(ntohs(pld->query)) { case NFCT_Q_CREATE: case NFCT_Q_UPDATE: - cn = (struct cache_nack *) + cn = (struct cache_ftfw *) cache_get_extra(STATE_SYNC(internal), u); if (cn->rs_list.next == &cn->rs_list && @@ -325,7 +325,7 @@ static void do_alive_alarm(struct alarm_list *a, void *data) tx_queue_add_ctlmsg(NET_F_ALIVE, 0, 0); } -static void nack_run(int step) +static void ftfw_run(int step) { struct list_head *i, *tmp; @@ -334,10 +334,10 @@ static void nack_run(int step) /* send conntracks in the tx_list */ list_for_each_safe(i, tmp, &tx_list) { - struct cache_nack *cn; + struct cache_ftfw *cn; struct us_conntrack *u; - cn = container_of(i, struct cache_nack, tx_list); + cn = container_of(i, struct cache_ftfw, tx_list); u = cache_get_conntrack(STATE_SYNC(internal), cn); tx_list_xmit(i, u); } @@ -353,14 +353,14 @@ static void nack_run(int step) } } -struct sync_mode nack = { +struct sync_mode ftfw = { .internal_cache_flags = LIFETIME, .external_cache_flags = LIFETIME, - .internal_cache_extra = &cache_nack_extra, - .init = nack_init, - .kill = nack_kill, - .local = nack_local, - .recv = nack_recv, - .send = nack_send, - .run = nack_run, + .internal_cache_extra = &cache_ftfw_extra, + .init = ftfw_init, + .kill = ftfw_kill, + .local = ftfw_local, + .recv = ftfw_recv, + .send = ftfw_send, + .run = ftfw_run, }; diff --git a/src/sync-mode.c b/src/sync-mode.c index 8a19ac5..7cd2b84 100644 --- a/src/sync-mode.c +++ b/src/sync-mode.c @@ -126,11 +126,11 @@ static int init_sync(void) } memset(state.sync, 0, sizeof(struct ct_sync_state)); - if (CONFIG(flags) & SYNC_MODE_NACK) - STATE_SYNC(sync) = &nack; + if (CONFIG(flags) & SYNC_MODE_FTFW) + STATE_SYNC(sync) = &ftfw; else - /* default to persistent mode */ - STATE_SYNC(sync) = ¬rack; + /* default to ftfw mode */ + STATE_SYNC(sync) = &ftfw; if (STATE_SYNC(sync)->init) STATE_SYNC(sync)->init(); |