Lines Matching refs:client

35 				    struct mpoa_client *client)  in in_cache_get()  argument
39 read_lock_bh(&client->ingress_lock); in in_cache_get()
40 entry = client->in_cache; in in_cache_get()
44 read_unlock_bh(&client->ingress_lock); in in_cache_get()
49 read_unlock_bh(&client->ingress_lock); in in_cache_get()
55 struct mpoa_client *client, in in_cache_get_with_mask() argument
60 read_lock_bh(&client->ingress_lock); in in_cache_get_with_mask()
61 entry = client->in_cache; in in_cache_get_with_mask()
65 read_unlock_bh(&client->ingress_lock); in in_cache_get_with_mask()
70 read_unlock_bh(&client->ingress_lock); in in_cache_get_with_mask()
77 struct mpoa_client *client) in in_cache_get_by_vcc() argument
81 read_lock_bh(&client->ingress_lock); in in_cache_get_by_vcc()
82 entry = client->in_cache; in in_cache_get_by_vcc()
86 read_unlock_bh(&client->ingress_lock); in in_cache_get_by_vcc()
91 read_unlock_bh(&client->ingress_lock); in in_cache_get_by_vcc()
97 struct mpoa_client *client) in in_cache_add_entry() argument
110 write_lock_bh(&client->ingress_lock); in in_cache_add_entry()
111 entry->next = client->in_cache; in in_cache_add_entry()
113 if (client->in_cache != NULL) in in_cache_add_entry()
114 client->in_cache->prev = entry; in in_cache_add_entry()
115 client->in_cache = entry; in in_cache_add_entry()
117 memcpy(entry->MPS_ctrl_ATM_addr, client->mps_ctrl_addr, ATM_ESA_LEN); in in_cache_add_entry()
120 entry->retry_time = client->parameters.mpc_p4; in in_cache_add_entry()
126 write_unlock_bh(&client->ingress_lock); in in_cache_add_entry()
191 struct mpoa_client *client) in in_cache_remove_entry() argument
203 client->in_cache = entry->next; in in_cache_remove_entry()
206 client->in_ops->put(entry); in in_cache_remove_entry()
207 if (client->in_cache == NULL && client->eg_cache == NULL) { in in_cache_remove_entry()
209 msg_to_mpoad(&msg, client); in in_cache_remove_entry()
214 eg_cache_entry *eg_entry = client->eg_ops->get_by_vcc(vcc, in in_cache_remove_entry()
215 client); in in_cache_remove_entry()
217 client->eg_ops->put(eg_entry); in in_cache_remove_entry()
226 static void clear_count_and_expired(struct mpoa_client *client) in clear_count_and_expired() argument
233 write_lock_bh(&client->ingress_lock); in clear_count_and_expired()
234 entry = client->in_cache; in clear_count_and_expired()
242 client->in_ops->remove_entry(entry, client); in clear_count_and_expired()
246 write_unlock_bh(&client->ingress_lock); in clear_count_and_expired()
250 static void check_resolving_entries(struct mpoa_client *client) in check_resolving_entries() argument
260 read_lock_bh(&client->ingress_lock); in check_resolving_entries()
261 entry = client->in_cache; in check_resolving_entries()
265 client->parameters.mpc_p6) { in check_resolving_entries()
276 if (entry->retry_time > client->parameters.mpc_p5) { in check_resolving_entries()
278 entry->retry_time = client->parameters.mpc_p4; in check_resolving_entries()
285 memcpy(msg.MPS_ctrl, client->mps_ctrl_addr, ATM_ESA_LEN); in check_resolving_entries()
290 msg_to_mpoad(&msg, client); in check_resolving_entries()
296 read_unlock_bh(&client->ingress_lock); in check_resolving_entries()
300 static void refresh_entries(struct mpoa_client *client) in refresh_entries() argument
303 struct in_cache_entry *entry = client->in_cache; in refresh_entries()
308 read_lock_bh(&client->ingress_lock); in refresh_entries()
322 read_unlock_bh(&client->ingress_lock); in refresh_entries()
428 struct mpoa_client *client) in eg_cache_remove_entry() argument
438 client->eg_cache = entry->next; in eg_cache_remove_entry()
441 client->eg_ops->put(entry); in eg_cache_remove_entry()
442 if (client->in_cache == NULL && client->eg_cache == NULL) { in eg_cache_remove_entry()
444 msg_to_mpoad(&msg, client); in eg_cache_remove_entry()
449 in_cache_entry *in_entry = client->in_ops->get_by_vcc(vcc, client); in eg_cache_remove_entry()
451 client->in_ops->put(in_entry); in eg_cache_remove_entry()
459 struct mpoa_client *client) in eg_cache_add_entry() argument
473 write_lock_irq(&client->egress_lock); in eg_cache_add_entry()
474 entry->next = client->eg_cache; in eg_cache_add_entry()
476 if (client->eg_cache != NULL) in eg_cache_add_entry()
477 client->eg_cache->prev = entry; in eg_cache_add_entry()
478 client->eg_cache = entry; in eg_cache_add_entry()
480 memcpy(entry->MPS_ctrl_ATM_addr, client->mps_ctrl_addr, ATM_ESA_LEN); in eg_cache_add_entry()
489 write_unlock_irq(&client->egress_lock); in eg_cache_add_entry()
502 static void clear_expired(struct mpoa_client *client) in clear_expired() argument
510 write_lock_irq(&client->egress_lock); in clear_expired()
511 entry = client->eg_cache; in clear_expired()
520 msg_to_mpoad(&msg, client); in clear_expired()
521 client->eg_ops->remove_entry(entry, client); in clear_expired()
525 write_unlock_irq(&client->egress_lock); in clear_expired()