def create(self) -> S46RuleOption: """ Create a MAP rule option based on the configuration. :return: The mapping rule """ option = S46RuleOption( ea_len=self.ea_len, ipv4_prefix=self.ipv4_prefix, ipv6_prefix=self.ipv6_prefix, options=[S46PortParametersOption(offset=self.a_bits)]) option.fmr = self.forwarding_mapping return option
psid=127) # S46RuleOption s46_rule_option_bytes = ( bytes.fromhex('0059' # option_type: OPTION_S46_RULE '0015' # option_length '01' # flags '10' # ea_len '18' # ipv4_prefix_len '01020300' # ipv4_prefix '22' # ipv6_prefix_len '20010db800') # ipv6_prefix + s46_port_parameters_option_bytes) s46_rule_option_object = S46RuleOption( flags=1, ea_len=16, ipv4_prefix=IPv4Network('1.2.3.0/24'), ipv6_prefix=IPv6Network('2001:db8::/34'), options=[s46_port_parameters_option_object]) # S46BROption s46_br_option_bytes = bytes.fromhex( '005a' # option_type: OPTION_S46_BR '0010' # option_length '20010db8000000000000000000000001') # 2001:db8::1 s46_br_option_object = S46BROption(br_address=IPv6Address('2001:db8::1')) # S46DMROption s46_dmr_option_bytes = bytes.fromhex('005b' # option_type: OPTION_S46_DMR '0006' # option_length '21' # prefix_len '20010db800') # 2001:db8::1