View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009574 | Part 81: UAFX Connecting Devices and Information Model | Spec | public | 2024-06-04 18:22 | 2024-10-04 13:15 |
Reporter | Brian Batke | Assigned To | Jan Murzyn | ||
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.00.03 | ||||
Summary | 0009574: Need stronger guidance on the use of UDP port numbers in connection config | ||||
Description | The CM can include a UDP port number when supplying PubSub configuration. For subscriber configuration, if a port number is provided, unless the port number is 4840 there is no guarantee that the subscriber would be able to use that port (the port could already be in use by another application). Unless the engineering tool or CM has prior knowledge that a port number other than 4840 can be used, it must use 4840. This isn't mentioned anywhere in Part 81 (or in Part 14). To ensure interoperability, we should provide guidance in the spec. | ||||
Tags | No tags attached. | ||||
related to | 0009658 | closed | Jan Murzyn | Missing information in CCS in case of unidirectional connection without heartbeat |
|
As a minimum at least the specification should describe this topic - it could also be discussed in part 14 also - it might also require some more specific behavior for device models. Also the configuration tools might need to discuss this. |
|
I think Part 14 already states the IANA registered port 4840 and that this is the default port. But I agree that it would be good to have a capability that indicates the valid ports. The actually used port is visible as soon as a PubSubConnection is configured and it would be possible to configure "empty" PubSubConnections but this would be overhead to just indicate what are valid ports. If the valid ports are in the capabilities, this information should then also be available in the offline descriptor. |
|
Part 14 says 4840 is the "default and recommended port", and that "other ports may be used", but it doesn't deal with the problem of how does a tool configuring PubSub know what "other ports" can be used on a subscriber. Agree that if there are multiple, independent applications then mandating 4840 would be problematic. For the normal case for controller & devices, it's likely not an issue, but would be good to be able to handle the multiple application case. There are probably multiple ways to solve it (adding the port number somewhere in the UAFX info model, or as with the CommunicationIds, add a sub-command to the EstablishConnections to get the port number(s)). Putting it in the descriptor is problematic, because if the device is using ephemeral ports (which it should in this case, since in general you should not use a port registered for something else) then you may not know the port number until run time). |
|
The ReserverIds is already doing this for PublisherId, WriterGroupId and DataSetWriterId to be able to get all addressing related information before the PubSub configuration is actually created. We can potentially extend the ReserveIds option to return additional information needed for PubSubConnection level. We return already the default PublisherId but this is returned in a BaseDataType and we pass in the TransportProfileUri. So we would be able to return a structure with more information than just the PublisherId. To add a sub command would be easier than to added additional fields in the result arguments/structures. The ReserveIds would be an option if the "additional Transport Information" is requested. In this case we can make sure the caller understands the additional structure returned instead of the pure PublisherId. Another option would be a capability variable similar to the DefaultPublisherId that we have already AND return in ReserveIds. |
|
There are 2 options to pass the port number in return of ReserveIds command:
There are also 2 options to request the "additional transport information":
I reviewed the above possibilities, and to me the most clean solution would be to add subtypes. I wrote my proposal in the Part 81 draft. If you don't like it this way, we can revert it and explore another possibilities. |
|
Added extension to allow obtaining port numbers from other server |
|
reviewed in call, agreed to changes, closed issue |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-06-04 18:22 | Brian Batke | New Issue | |
2024-06-07 12:20 | Paul Hunkar | Note Added: 0021266 | |
2024-06-07 14:20 | Paul Hunkar | Assigned To | => Brian Batke |
2024-06-07 14:20 | Paul Hunkar | Status | new => assigned |
2024-07-11 17:30 | Matthias Damm | Note Added: 0021449 | |
2024-07-12 12:28 | Brian Batke | Note Added: 0021453 | |
2024-07-12 13:50 | Matthias Damm | Note Added: 0021455 | |
2024-07-16 13:12 | Paul Hunkar | Relationship added | related to 0009658 |
2024-09-18 17:53 | Jan Murzyn | Note Added: 0021744 | |
2024-09-18 17:53 | Jan Murzyn | File Added: image.png | |
2024-09-18 17:53 | Jan Murzyn | File Added: image-2.png | |
2024-09-18 17:53 | Jan Murzyn | File Added: image-3.png | |
2024-09-20 09:00 | Paul Hunkar | Assigned To | Brian Batke => Jan Murzyn |
2024-09-20 09:00 | Paul Hunkar | Status | assigned => resolved |
2024-09-20 09:00 | Paul Hunkar | Resolution | open => fixed |
2024-09-20 09:00 | Paul Hunkar | Fixed in Version | => 1.00.03 |
2024-09-20 09:00 | Paul Hunkar | Note Added: 0021752 | |
2024-10-04 13:15 | Paul Hunkar | Status | resolved => closed |
2024-10-04 13:15 | Paul Hunkar | Note Added: 0021826 |