byteblowerll.byteblower.DHCPv6Protocol

class byteblowerll.byteblower.DHCPv6Protocol(*args, **kwargs)
The DHCPv6Protocol is the entry point to configure the DHCPv6 client
behavior of a ByteBlowerPort.

A ByteBlowerPort can perform DHCPv6 for configuring IP addresses, IP prefixes and/or other parameters required to operate on an IPv6 network.

A ByteBlowerPort can acquire and combine IP addresses using stateless address autoconfiguration, or by using DHCPv6 or static configuration. DHCP tends to be preferred at sites where central management of hosts is valued; stateless autoconfiguration does not require any sort of central management, and is therefore preferable in networks where no management is readily available, such as a typical home network.

IPv6 hosts that use stateless autoconfiguration may require information other than an IP address. DHCPv6 can be used to acquire this information, even though it is not being used to configure IP addresses.

DHCPv6 can also be used to deligate prefix information to e.g. home gateways. Such gateways require not only an IPv6 address for use in communicating with upstream routers, but also an IPv6 prefix for use in configuring devices on the downstream side of the router. DHCPv6 Prefix delegation provides a mechanism for configuring such routers. ByteBlower currently doesn’t support prefix delegation yet, but can only be used as a host.

ByteBlower allows full control of the timing parameters of the DHCPv6 client side. The retransmission policy used for DHCPv6 is the one suggested in the rfc:3315.

Configurable timing parameters are:

  • Initial Timeout
  • Maximum Duration
  • Maximum Retries
  • Maximum Timeout

These timing parameters can be applied to the following stages of DHCPv6:

  • Solicit
  • Request
  • Renew
  • Inform
  • Confirm
For each state the parameters do the following:
ByteBlower will send up to <MaxRetries> messages. The total duration of the the state may take up the <MaxDuration>. For the first attempt, a ByteBlowerPort will wait up to <InitialTimeout> nanoseconds before retrying. Each attempt will wait for maximum ‘<MaxTimeout> nanoseconds before concluding that the messages has timed out.
__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

Methods

ConfirmInitialTimeoutGet() Getter for <InitialTimeout> when in the Confirm state.
ConfirmInitialTimeoutSet(arg2) Setter for <InitialTimeout> when in the Confirm state.
ConfirmMaxDurationGet() Getter for <MaxDuration> when in the Confirm state.
ConfirmMaxDurationSet(arg2) Setter for <MaxDuration> when in the Confirm state.
ConfirmMaxRetriesGet() Getter for <MaxRetries> when in the Confirm state.
ConfirmMaxRetriesSet(arg2) Setter for <MaxRetries> when in the Confirm state.
ConfirmMaxTimeoutGet() Getter for <MaxTimeout> when in the Confirm state.
ConfirmMaxTimeoutSet(arg2) Setter for <MaxTimeout> when in the Confirm state.
DHCPv6SessionInfoGet() Returns the sessionInfo object for this DHCP Session.
DescriptionGet(*args) Gets a textual description for the current object
InformInitialTimeoutGet() Getter for <InitialTimeout> when in the Inform state.
InformInitialTimeoutSet(arg2) Setter for <InitialTimeout> when in the Inform state.
InformMaxDurationGet() Getter for <MaxDuration> when in the Inform state.
InformMaxDurationSet(arg2) Setter for <MaxDuration> when in the Inform state.
InformMaxRetriesGet() Getter for <MaxRetries> when in the Inform state.
InformMaxRetriesSet(arg2) Setter for <MaxRetries> when in the Inform state.
InformMaxTimeoutGet() Getter for <MaxTimeout> when in the Inform state.
InformMaxTimeoutSet(arg2) Setter for <MaxTimeout> when in the Inform state.
ParentGet() Returns the parent object.
Perform() This method will bootstrap the DHCPv6 process.
PerformAsync() This method will bootstrap the DHCPv6 process.
Refresh() Retrieves the latest data from the server for this object.
Release() Release the address previously received using DHCPv6
ReleaseEnable(inValue) Enable automatical release when the ByteBlower port is destroyed
ReleaseIsEnabled() Returns True when automatic release is enabled
RenewInitialTimeoutGet() Getter for <InitialTimeout> when in the Renew state.
RenewInitialTimeoutSet(arg2) Setter for <InitialTimeout> when in the Renew state.
RenewMaxDurationGet() Getter for <MaxDuration> when in the Renew state.
RenewMaxDurationSet(arg2) Setter for <MaxDuration> when in the Renew state.
RenewMaxRetriesGet() Getter for <MaxRetries> when in the Renew state.
RenewMaxRetriesSet(arg2) Setter for <MaxRetries> when in the Renew state.
RenewMaxTimeoutGet() Getter for <MaxTimeout> when in the Renew state.
RenewMaxTimeoutSet(arg2) Setter for <MaxTimeout> when in the Renew state.
RequestInitialTimeoutGet() Getter for <InitialTimeout> when in the Request state.
RequestInitialTimeoutSet(arg2) Setter for <InitialTimeout> when in the Request state.
RequestMaxDurationGet() Getter for <MaxDuration> when in the Request state.
RequestMaxDurationSet(arg2) Setter for <MaxDuration> when in the Request state.
RequestMaxRetriesGet() Getter for <MaxRetries> when in the Request state.
RequestMaxRetriesSet(arg2) Setter for <MaxRetries> when in the Request state.
RequestMaxTimeoutGet() Getter for <MaxTimeout> when in the Request state.
RequestMaxTimeoutSet(arg2) Setter for <MaxTimeout> when in the Request state.
RetransmissionPolicyGet()
RetransmissionPolicySet(policy)
SolicitInitialTimeoutGet() Getter for <InitialTimeout> when in the Solicit state.
SolicitInitialTimeoutSet(arg2) Setter for <InitialTimeout> when in the Solicit state.
SolicitMaxDurationGet() Getter for <MaxDuration> when in the Solicit state.
SolicitMaxDurationSet(arg2) Setter for <MaxDuration> when in the Solicit state.
SolicitMaxRetriesGet() Getter for <MaxRetries> when in the Solicit state.
SolicitMaxRetriesSet(arg2) Setter for <MaxRetries> when in the Solicit state.
SolicitMaxTimeoutGet() Getter for <MaxTimeout> when in the Solicit state.
SolicitMaxTimeoutSet(arg2) Setter for <MaxTimeout> when in the Solicit state.
__init__(*args, **kwargs) Initialize self.

Attributes

thisown The membership flag