• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7800-V1.0.2.28/package/qca-nss-ecm/src/

Lines Matching defs:mi

1390 void ecm_db_mapping_data_stats_get(struct ecm_db_mapping_instance *mi, uint64_t *from_data_total, uint64_t *to_data_total,
1395 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
1398 *from_data_total = mi->from_data_total;
1401 *to_data_total = mi->to_data_total;
1404 *from_packet_total = mi->from_packet_total;
1407 *to_packet_total = mi->to_packet_total;
1410 *from_data_total_dropped = mi->from_data_total_dropped;
1413 *to_data_total_dropped = mi->to_data_total_dropped;
1416 *from_packet_total_dropped = mi->from_packet_total_dropped;
1419 *to_packet_total_dropped = mi->to_packet_total_dropped;
2002 void ecm_db_mapping_port_count_get(struct ecm_db_mapping_instance *mi,
2006 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
2010 *tcp_from = mi->tcp_from;
2011 *tcp_to = mi->tcp_to;
2012 *udp_from = mi->udp_from;
2013 *udp_to = mi->udp_to;
2014 *from = mi->from;
2015 *to = mi->to;
2017 *tcp_nat_from = mi->tcp_nat_from;
2018 *tcp_nat_to = mi->tcp_nat_to;
2019 *udp_nat_from = mi->udp_nat_from;
2020 *udp_nat_to = mi->udp_nat_to;
2021 *nat_from = mi->nat_from;
2022 *nat_to = mi->nat_to;
2087 void ecm_db_mapping_adress_get(struct ecm_db_mapping_instance *mi, ip_addr_t addr)
2089 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
2090 ECM_IP_ADDR_COPY(addr, mi->host->address);
2098 int ecm_db_mapping_port_get(struct ecm_db_mapping_instance *mi)
2100 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
2101 return mi->port;
2363 static void _ecm_db_mapping_ref(struct ecm_db_mapping_instance *mi)
2365 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed\n", mi);
2366 mi->refs++;
2367 DEBUG_TRACE("%p: mapping ref %d\n", mi, mi->refs);
2368 DEBUG_ASSERT(mi->refs > 0, "%p: ref wrap\n", mi);
2374 void ecm_db_mapping_ref(struct ecm_db_mapping_instance *mi)
2377 _ecm_db_mapping_ref(mi);
2510 struct ecm_db_mapping_instance *mi;
2512 mi = ecm_db_mappings;
2513 if (mi) {
2514 _ecm_db_mapping_ref(mi);
2517 return mi;
2525 struct ecm_db_mapping_instance *ecm_db_mapping_get_and_ref_next(struct ecm_db_mapping_instance *mi)
2528 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
2530 min = mi->next;
3144 int ecm_db_mapping_deref(struct ecm_db_mapping_instance *mi)
3146 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed\n", mi);
3149 mi->refs--;
3150 DEBUG_TRACE("%p: mapping deref %d\n", mi, mi->refs);
3151 DEBUG_ASSERT(mi->refs >= 0, "%p: ref wrap\n", mi);
3153 if (mi->refs > 0) {
3154 int refs = mi->refs;
3159 DEBUG_ASSERT(!mi->tcp_from && !mi->udp_from && !mi->from, "%p: from not zero: %d, %d, %d\n",
3160 mi, mi->tcp_from, mi->udp_from, mi->from);
3161 DEBUG_ASSERT(!mi->tcp_to && !mi->udp_to && !mi->to, "%p: to not zero: %d, %d, %d\n",
3162 mi, mi->tcp_to, mi->udp_to, mi->to);
3163 DEBUG_ASSERT(!mi->tcp_nat_from && !mi->udp_nat_from && !mi->nat_from, "%p: nat_from not zero: %d, %d, %d\n",
3164 mi, mi->tcp_nat_from, mi->udp_nat_from, mi->nat_from);
3165 DEBUG_ASSERT(!mi->tcp_nat_to && !mi->udp_nat_to && !mi->nat_to, "%p: nat_to not zero: %d, %d, %d\n",
3166 mi, mi->tcp_nat_to, mi->udp_nat_to, mi->nat_to);
3169 DEBUG_ASSERT(!mi->from_connections, "%p: from not null: %p\n", mi, mi->from_connections);
3170 DEBUG_ASSERT(!mi->to_connections, "%p: to not null: %p\n", mi, mi->to_connections);
3171 DEBUG_ASSERT(!mi->from_nat_connections, "%p: nat_from not null: %p\n", mi, mi->from_nat_connections);
3172 DEBUG_ASSERT(!mi->to_nat_connections, "%p: nat_to not null: %p\n", mi, mi->to_nat_connections);
3178 if (!mi->flags & ECM_DB_MAPPING_FLAGS_INSERTED) {
3186 if (!mi->prev) {
3187 DEBUG_ASSERT(ecm_db_mappings == mi, "%p: mapping table bad\n", mi);
3188 ecm_db_mappings = mi->next;
3190 mi->prev->next = mi->next;
3192 if (mi->next) {
3193 mi->next->prev = mi->prev;
3199 if (!mi->hash_prev) {
3200 DEBUG_ASSERT(ecm_db_mapping_table[mi->hash_index] == mi, "%p: hash table bad\n", mi);
3201 ecm_db_mapping_table[mi->hash_index] = mi->hash_next;
3203 mi->hash_prev->hash_next = mi->hash_next;
3205 if (mi->hash_next) {
3206 mi->hash_next->hash_prev = mi->hash_prev;
3208 mi->hash_next = NULL;
3209 mi->hash_prev = NULL;
3210 ecm_db_mapping_table_lengths[mi->hash_index]--;
3211 DEBUG_ASSERT(ecm_db_mapping_table_lengths[mi->hash_index] >= 0, "%p: invalid table len %d\n", mi, ecm_db_mapping_table_lengths[mi->hash_index]);
3217 if (!mi->mapping_prev) {
3218 DEBUG_ASSERT(mi->host->mappings == mi, "%p: mapping table bad\n", mi);
3219 mi->host->mappings = mi->mapping_next;
3221 mi->mapping_prev->mapping_next = mi->mapping_next;
3223 if (mi->mapping_next) {
3224 mi->mapping_next->mapping_prev = mi->mapping_prev;
3226 mi->mapping_next = NULL;
3227 mi->mapping_prev = NULL;
3229 mi->host->mapping_count--;
3236 DEBUG_TRACE("%p: Throw mapping removed event\n", mi);
3241 li->mapping_removed(li->arg, mi);
3256 if (mi->final) {
3257 mi->final(mi->arg);
3263 if (mi->host) {
3264 ecm_db_host_deref(mi->host);
3270 DEBUG_CLEAR_MAGIC(mi);
3271 kfree(mi);
3278 DEBUG_ASSERT(ecm_db_mapping_count >= 0, "%p: mapping count wrap\n", mi);
4648 struct ecm_db_mapping_instance *mi;
4661 mi = ecm_db_mapping_table[hash_index];
4662 while (mi) {
4663 if (mi->port != port) {
4664 mi = mi->hash_next;
4668 if (!ECM_IP_ADDR_MATCH(mi->host->address, address)) {
4669 mi = mi->hash_next;
4673 _ecm_db_mapping_ref(mi);
4675 DEBUG_TRACE("Mapping found %p\n", mi);
4676 return mi;
4952 struct ecm_db_connection_instance *ecm_db_mapping_connections_from_get_and_ref_first(struct ecm_db_mapping_instance *mi)
4956 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
4959 ci = mi->from_connections;
4973 struct ecm_db_connection_instance *ecm_db_mapping_connections_to_get_and_ref_first(struct ecm_db_mapping_instance *mi)
4977 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
4980 ci = mi->to_connections;
4994 struct ecm_db_connection_instance *ecm_db_mapping_connections_nat_from_get_and_ref_first(struct ecm_db_mapping_instance *mi)
4998 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
5001 ci = mi->from_nat_connections;
5015 struct ecm_db_connection_instance *ecm_db_mapping_connections_nat_to_get_and_ref_first(struct ecm_db_mapping_instance *mi)
5019 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed", mi);
5022 ci = mi->to_nat_connections;
5343 struct ecm_db_host_instance *ecm_db_mapping_host_get_and_ref(struct ecm_db_mapping_instance *mi)
5345 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed\n", mi);
5348 _ecm_db_host_ref(mi->host);
5350 return mi->host;
5372 int ecm_db_mapping_connections_total_count_get(struct ecm_db_mapping_instance *mi)
5376 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed\n", mi);
5379 count = mi->from + mi->to + mi->nat_from + mi->nat_to;
5380 DEBUG_ASSERT(count >= 0, "%p: Count overflow from: %d, to: %d, nat_from: %d, nat_to: %d\n", mi, mi->from, mi->to, mi->nat_from, mi->nat_to);
5392 struct ecm_db_mapping_instance *mi;
5397 mi = ci->mapping_from;
5398 _ecm_db_mapping_ref(mi);
5400 return mi;
5410 struct ecm_db_mapping_instance *mi;
5415 mi = ci->mapping_nat_from;
5416 _ecm_db_mapping_ref(mi);
5418 return mi;
5428 struct ecm_db_mapping_instance *mi;
5433 mi = ci->mapping_to;
5434 _ecm_db_mapping_ref(mi);
5436 return mi;
5446 struct ecm_db_mapping_instance *mi;
5451 mi = ci->mapping_nat_to;
5452 _ecm_db_mapping_ref(mi);
5454 return mi;
7068 void ecm_db_mapping_add(struct ecm_db_mapping_instance *mi, struct ecm_db_host_instance *hi, int port,
7075 DEBUG_CHECK_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC, "%p: magic failed\n", mi);
7077 DEBUG_ASSERT(!(mi->flags & ECM_DB_MAPPING_FLAGS_INSERTED), "%p: inserted\n", mi);
7079 DEBUG_ASSERT(!mi->tcp_from && !mi->tcp_to && !mi->udp_from && !mi->udp_to, "%p: protocol count errors\n", mi);
7081 DEBUG_ASSERT(mi->from_connections == NULL, "%p: connections not null\n", mi);
7082 DEBUG_ASSERT(mi->to_connections == NULL, "%p: connections not null\n", mi);
7083 DEBUG_ASSERT(!mi->from && !mi->to && !mi->nat_from && !mi->nat_to, "%p: connection count errors\n", mi);
7087 mi->arg = arg;
7088 mi->final = final;
7094 mi->hash_index = hash_index;
7099 mi->port = port;
7105 mi->host = hi;
7111 mi->time_added = ecm_db_time;
7116 mi->flags |= ECM_DB_MAPPING_FLAGS_INSERTED;
7121 mi->prev = NULL;
7122 mi->next = ecm_db_mappings;
7124 ecm_db_mappings->prev = mi;
7126 ecm_db_mappings = mi;
7131 mi->hash_next = ecm_db_mapping_table[hash_index];
7133 ecm_db_mapping_table[hash_index]->hash_prev = mi;
7135 ecm_db_mapping_table[hash_index] = mi;
7143 mi->mapping_prev = NULL;
7144 mi->mapping_next = hi->mappings;
7146 hi->mappings->mapping_prev = mi;
7148 hi->mappings = mi;
7156 DEBUG_TRACE("%p: Throw mapping added event\n", mi);
7161 li->mapping_added(li->arg, mi);
8271 int ecm_db_mapping_state_get(struct ecm_state_file_instance *sfi, struct ecm_db_mapping_instance *mi)
8301 DEBUG_TRACE("Prep mapping msg for %p\n", mi);
8307 ecm_db_mapping_port_count_get(mi, &tcp_from, &tcp_to, &udp_from, &udp_to, &from, &to,
8309 port = mi->port;
8310 time_added = mi->time_added;
8311 hi = mi->host;
8315 ecm_db_mapping_data_stats_get(mi, &from_data_total, &to_data_total,
10079 struct ecm_db_mapping_instance *mi;
10081 mi = (struct ecm_db_mapping_instance *)kzalloc(sizeof(struct ecm_db_mapping_instance), GFP_ATOMIC | __GFP_NOWARN);
10082 if (!mi) {
10087 mi->refs = 1;
10088 DEBUG_SET_MAGIC(mi, ECM_DB_MAPPING_INSTANCE_MAGIC);
10101 kfree(mi);
10108 DEBUG_TRACE("Mapping created %p\n", mi);
10109 return mi;