making "destination_ip_address" an optional field - #471
Conversation
| x-include: ../../common/common.yaml#/components/schemas/Named.Object/properties/name | ||
| x-field-uid: 1 | ||
| destination_ip_address: | ||
| description: |- |
There was a problem hiding this comment.
There is an ambiguity in this change. Earlier it was required so user was forced to provide the dest IP. Now, if user does not specify, I think there is no way for an implementation to know if user actually provided it or not.
Implementation is forced to make a is_present check which we normally never do for a attribute. This seems to be a problem as per regular design. Normally optional fields are encapsulated inside an object and we check for presence or absence of the object or some enum to drive the behaviour.
e.g. enum dst_ip_mode = user_specified, auto_detected.
user_specified takes in IP , auto_detected specified how IP should be set by user / the behaviour.
Though this does break backward compatibility as designed now. Please take a look as such and what you want to do for snappi_ixn.
Anyway, there should be clear documentation on expected RoCEv2 behaviour if IP is not specified.
Same comments hold for IPv6 as well.
Feature Overview
There can be instances where we do not want to set destination Peer for a RoCEv2 peer. In that case, keeping the "destination_ip_address" a required field doesn't makes sense. Hence removing it from the required section.
Code snippets