pnoltes commented on code in PR #710:
URL: https://github.com/apache/celix/pull/710#discussion_r1453873365


##########
bundles/remote_services/remote_service_admin_dfi/src/remote_service_admin_dfi_constants.h:
##########
@@ -36,6 +36,15 @@
 #define RSA_DFI_CONFIGURATION_TYPE      "org.amdatu.remote.admin.http"
 #define RSA_DFI_ENDPOINT_URL            "org.amdatu.remote.admin.http.url"
 
+/**
+ * @brief RSA Configuration type for zeroconf http, it is 
synonymous(https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.remoteservices.html#i1698916)
 with RSA_DFI_CONFIGURATION_TYPE, they refer to the same endpoint.

Review Comment:
   > Thank you for your reply.
   > 
   > First, I agree with this solution. But I still have some issues that need 
to confirm with you.
   > 
   > > 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.
   > 
   > Does this mean that the endpoint descriptions for dynamic IP are generated 
by Topology Manager when exporting service? Should the network interface used 
to publish services be specified by Topology Manager or RSA?
   
   Good point, this should indeed be the RSA. 
   
   > 
   > How about dealing with it in two cases: In the first case, if the RSA 
supports dynamic IP, RSA should bind its services to ANY address (0.0.0.0). 
Then the Topology Manager should specify which network interfaces the services 
are published to, and restrict access to the corresponding services from other 
network interfaces (e.g.: `iptables -A INPUT -i eth0 -p tcp -- dport 80 -j 
DROP`).
   > 
   > In the second case, if RSA does not support dynamic IP, RSA binds its 
network services to a specific IP, and its exported endpoint should specify 
which network interface the service is published to.
   > 
   > In the above case, we will define a generic endpoint property 
`rsa.ifnames` (Type string list). The property is used to specify which network 
interfaces the service is published to.
   
   That does indeed sound better. One of my cancern was to prevent too much 
repeated boiler plaiting between the RSA bundles, but indeed the RSA is binding 
on network interface and hence it should decide and informs whether is uses a 
single or multiple interfaces. 
   > 
   > > RSA Export Registration dynamic replaceable property
   > > 
   > > * Property name: rsa.ip.address
   > > * Type string
   > 
   > When using dynamic IP, perhaps multiple IP are obtained, should the 
`rsa.ip.address` type be a string list?
   
   List of string, but this is not yet supported. I am busy with a branch that 
updates properties for (among others) list of strings: 
https://github.com/apache/celix/tree/feature/674-improve-properties
   
   I will make a ticket for yet another improvement on remote service and let 
it depend on #674 
   
   For this PR this remark can now be ignored.



-- 
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

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to