pnoltes opened a new issue, #719: URL: https://github.com/apache/celix/issues/719
# Intro With the current RSA implementation, Remote Service Admins can bound to multiple network interfaces (bind 0.0.0.0), but there is not clear defined way to ensure that discovery can work with endpoints that describe an exposed endpoint on multiple network interface and thus exposed with multiple IPs. # Improvements a) Let RSA implementations decide if they support "dynamic IP fill-in" by providing a additional service property on the registered RSA service. if dynamic IP fill-in is supported, the RSA implementation should bind to ANY address (0.0.0.0) b) The Topology Manager should handle RSA without "dynamic IP fill-in" as-is c) And the Topology Manager should select which network interfaces are used for exported endpoint exposure. This can based on configuration (config properties) or on dynamic lookup. IP addresses that are not part of the selected interface should be ignore so that no communication is possible on not-selected IP addresses. d) Update the Topology Manager to detect RSA services what support dynamic IP fill-in and in that case create multiple endpoints for a single export registration based on the available network interfaces and an optional network selection configuration. These endpoints are then forwarded to the discovery listener services that support network specific endpoints. The discovery implementation can pick and handle or drop endpoints based on the selected network interface. The primary idea is that most of the boiler-plating to support dynamic IP fill-in is moved to the topology manager and kept away from the RSA and discovery implementations. For the service/endpoint property something like the following can be used: - RSA Dynamic IP fill-in support - Property name: "rsa.dynamic.ip.support" - Type: boolean - Description: Indicates whether the RSA implementation supports dynamic IP address fill-in for service exports - RSA Export Registration dynamic replaceable property - Property name: rsa.ifnames - Type: string array (depends on #674 - Description: The dynamically determined IP address for the endpoint. - Discovery interface-specific endpoints support. - Property Name: "discovery.interface.specific.endpoints.support - Type: boolean - Description: Indicates if the discovery implementation supports handling of interface-specific endpoints. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@celix.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org