network: make request_process_address() and friends take Link and corresponding object

This also renames e.g. request_process_address() -> address_process_request().

Also, this drops type checks such as `assert(req->type == REQUEST_TYPE_ADDRESS)`,
as in the later commits, the function of processing request, e.g.
`address_process_request()`, will be assigned to the Request object when
it is created. And the request type will be used to distinguish and to
avoid deduplicating requests which do not have any assigned objects,
like REQUEST_TYPE_DHCP4_CLIENT. Hence, the type checks in process functions
are mostly not necessary and redundant.

This is mostly cleanups and preparation for later commits, and should
not change any behavior.
This commit is contained in:
Yu Watanabe
2022-03-11 14:16:41 +09:00
parent 54ff39f7ae
commit ff51134c93
37 changed files with 99 additions and 177 deletions
+20 -20
View File
@@ -369,67 +369,67 @@ int manager_process_requests(sd_event_source *s, void *userdata) {
ORDERED_SET_FOREACH(req, manager->request_queue) {
switch (req->type) {
case REQUEST_TYPE_ACTIVATE_LINK:
r = request_process_activation(req);
r = link_process_activation(req, req->link, req->userdata);
break;
case REQUEST_TYPE_ADDRESS:
r = request_process_address(req);
r = address_process_request(req, req->link, req->address);
break;
case REQUEST_TYPE_ADDRESS_LABEL:
r = request_process_address_label(req);
r = address_label_process_request(req, req->link, req->label);
break;
case REQUEST_TYPE_BRIDGE_FDB:
r = request_process_bridge_fdb(req);
r = bridge_fdb_process_request(req, req->link, req->fdb);
break;
case REQUEST_TYPE_BRIDGE_MDB:
r = request_process_bridge_mdb(req);
r = bridge_mdb_process_request(req, req->link, req->mdb);
break;
case REQUEST_TYPE_DHCP_SERVER:
r = request_process_dhcp_server(req);
r = dhcp_server_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_DHCP4_CLIENT:
r = request_process_dhcp4_client(req);
r = dhcp4_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_DHCP6_CLIENT:
r = request_process_dhcp6_client(req);
r = dhcp6_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_IPV6_PROXY_NDP:
r = request_process_ipv6_proxy_ndp_address(req);
r = ipv6_proxy_ndp_address_process_request(req, req->link, req->ipv6_proxy_ndp);
break;
case REQUEST_TYPE_NDISC:
r = request_process_ndisc(req);
r = ndisc_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_NEIGHBOR:
r = request_process_neighbor(req);
r = neighbor_process_request(req, req->link, req->neighbor);
break;
case REQUEST_TYPE_NETDEV_INDEPENDENT:
r = request_process_independent_netdev(req);
r = independent_netdev_process_request(req, req->link, req->netdev);
break;
case REQUEST_TYPE_NETDEV_STACKED:
r = request_process_stacked_netdev(req);
r = stacked_netdev_process_request(req, req->link, req->netdev);
break;
case REQUEST_TYPE_NEXTHOP:
r = request_process_nexthop(req);
r = nexthop_process_request(req, req->link, req->nexthop);
break;
case REQUEST_TYPE_RADV:
r = request_process_radv(req);
r = radv_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_ROUTE:
r = request_process_route(req);
r = route_process_request(req, req->link, req->route);
break;
case REQUEST_TYPE_ROUTING_POLICY_RULE:
r = request_process_routing_policy_rule(req);
r = routing_policy_rule_process_request(req, req->link, req->rule);
break;
case REQUEST_TYPE_SET_LINK:
r = request_process_set_link(req);
break;
case REQUEST_TYPE_TC_QDISC:
r = request_process_qdisc(req);
r = qdisc_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_TC_CLASS:
r = request_process_tclass(req);
r = tclass_process_request(req, req->link, NULL);
break;
case REQUEST_TYPE_UP_DOWN:
r = request_process_link_up_or_down(req);
r = link_process_up_or_down(req, req->link, req->userdata);
break;
default:
return -EINVAL;