specified: OPTION_S46_V4V6BIND and OPTION_S46_BR. There MUST be at most one OPTION_S46_V4V6BIND option and at least one OPTION_S46_BR option. """ option_type = OPTION_S46_CONT_LW # Register where these options may occur SolicitMessage.add_may_contain(S46ContainerOption) AdvertiseMessage.add_may_contain(S46ContainerOption) RequestMessage.add_may_contain(S46ContainerOption) ConfirmMessage.add_may_contain(S46ContainerOption) RenewMessage.add_may_contain(S46ContainerOption) RebindMessage.add_may_contain(S46ContainerOption) ReleaseMessage.add_may_contain(S46ContainerOption) ReplyMessage.add_may_contain(S46ContainerOption) S46RuleOption.add_may_contain(S46PortParametersOption) S46V4V6BindingOption.add_may_contain(S46PortParametersOption) S46MapEContainerOption.add_may_contain(S46RuleOption, min_occurrence=1) S46MapEContainerOption.add_may_contain(S46BROption, min_occurrence=1) S46MapEContainerOption.add_may_contain(S46PortParametersOption) S46MapTContainerOption.add_may_contain(S46RuleOption, min_occurrence=1) S46MapTContainerOption.add_may_contain(S46DMROption, min_occurrence=1, max_occurrence=1) S46MapTContainerOption.add_may_contain(S46PortParametersOption) S46LWContainerOption.add_may_contain(S46V4V6BindingOption, min_occurrence=0, max_occurrence=1)
specified: OPTION_S46_V4V6BIND and OPTION_S46_BR. There MUST be at most one OPTION_S46_V4V6BIND option and at least one OPTION_S46_BR option. """ option_type = OPTION_S46_CONT_LW # Register where these options may occur SolicitMessage.add_may_contain(S46ContainerOption) AdvertiseMessage.add_may_contain(S46ContainerOption) RequestMessage.add_may_contain(S46ContainerOption) ConfirmMessage.add_may_contain(S46ContainerOption) RenewMessage.add_may_contain(S46ContainerOption) RebindMessage.add_may_contain(S46ContainerOption) ReleaseMessage.add_may_contain(S46ContainerOption) ReplyMessage.add_may_contain(S46ContainerOption) S46RuleOption.add_may_contain(S46PortParametersOption) S46V4V6BindingOption.add_may_contain(S46PortParametersOption) S46MapEContainerOption.add_may_contain(S46RuleOption, min_occurrence=1) S46MapEContainerOption.add_may_contain(S46BROption, min_occurrence=1) S46MapEContainerOption.add_may_contain(S46PortParametersOption) S46MapTContainerOption.add_may_contain(S46RuleOption, min_occurrence=1) S46MapTContainerOption.add_may_contain(S46DMROption, min_occurrence=1, max_occurrence=1) S46MapTContainerOption.add_may_contain(S46PortParametersOption)
:return: The buffer with the data from this element """ options_buffer = bytearray() for option in self.options: options_buffer.extend(option.save()) buffer = bytearray() buffer.extend( pack('!HHIIB', self.option_type, len(options_buffer) + 25, self.preferred_lifetime, self.valid_lifetime, self.prefix.prefixlen)) buffer.extend(self.prefix.network_address.packed) buffer.extend(options_buffer) return buffer # Register where these options may occur SolicitMessage.add_may_contain(IAPDOption) AdvertiseMessage.add_may_contain(IAPDOption) RequestMessage.add_may_contain(IAPDOption) ConfirmMessage.add_may_contain(IAPDOption) RenewMessage.add_may_contain(IAPDOption) RebindMessage.add_may_contain(IAPDOption) ReleaseMessage.add_may_contain(IAPDOption) ReplyMessage.add_may_contain(IAPDOption) IAPDOption.add_may_contain(IAPrefixOption) IAPDOption.add_may_contain(StatusCodeOption, 0, 1) IAPrefixOption.add_may_contain(StatusCodeOption, 0, 1)
:return: The buffer with the data from this element """ self.validate() options_buffer = bytearray() for option in self.options: options_buffer.extend(option.save()) buffer = bytearray() buffer.extend(pack('!HHIIB', self.option_type, len(options_buffer) + 25, self.preferred_lifetime, self.valid_lifetime, self.prefix.prefixlen)) buffer.extend(self.prefix.network_address.packed) buffer.extend(options_buffer) return buffer # Register where these options may occur SolicitMessage.add_may_contain(IAPDOption) AdvertiseMessage.add_may_contain(IAPDOption) RequestMessage.add_may_contain(IAPDOption) RenewMessage.add_may_contain(IAPDOption) RebindMessage.add_may_contain(IAPDOption) ReleaseMessage.add_may_contain(IAPDOption) ReplyMessage.add_may_contain(IAPDOption) IAPDOption.add_may_contain(IAPrefixOption) IAPDOption.add_may_contain(StatusCodeOption, 0, 1) IAPrefixOption.add_may_contain(StatusCodeOption, 0, 1)