OpenSDN source code
Icmpv6PathPreferenceState Class Reference

#include <icmpv6_proto.h>

Collaboration diagram for Icmpv6PathPreferenceState:

Public Types

typedef std::map< uint32_t, InterfaceIcmpv6PathPreferenceInfoWaitForTrafficIntfMap
 
typedef std::set< uint32_t > NDTransmittedIntfMap
 

Public Member Functions

 Icmpv6PathPreferenceState (Icmpv6VrfState *vrf_state, uint32_t vrf_id, IpAddress vm_ip_addr, uint8_t plen)
 
 ~Icmpv6PathPreferenceState ()
 
bool SendNeighborSolicit ()
 
bool SendNeighborSolicit (WaitForTrafficIntfMap &wait_for_traffic_map, NDTransmittedIntfMap &nd_transmitted_map)
 
void SendNeighborSolicitForAllIntf (const AgentRoute *route)
 
void StartTimer ()
 
void HandleNA (uint32_t itf)
 
Icmpv6VrfStatevrf_state ()
 
const IpAddressip () const
 
MacAddress mac (void) const
 
bool IntfPresentInIpMap (uint32_t id)
 
bool IntfPresentInEvpnMap (uint32_t id)
 
uint32_t IntfRetryCountInIpMap (uint32_t id)
 
uint32_t IntfRetryCountInEvpnMap (uint32_t id)
 

Static Public Attributes

static const uint32_t kMaxRetry = 30 * 5
 
static const uint32_t kTimeout = 2000
 
static const uint32_t kTimeoutMultiplier = 5
 
static const uint32_t kNSTryCount = 9
 

Private Attributes

Icmpv6VrfStatevrf_state_
 
Timerns_req_timer_
 
uint32_t vrf_id_
 
IpAddress vm_ip_
 
MacAddress mac_
 
uint8_t plen_
 
IpAddress svc_ip_
 
WaitForTrafficIntfMap l3_wait_for_traffic_map_
 
WaitForTrafficIntfMap evpn_wait_for_traffic_map_
 
tbb::atomic< int > refcount_
 

Friends

void intrusive_ptr_add_ref (Icmpv6PathPreferenceState *ps)
 
void intrusive_ptr_release (Icmpv6PathPreferenceState *ps)
 

Detailed Description

Definition at line 263 of file icmpv6_proto.h.

Member Typedef Documentation

◆ NDTransmittedIntfMap

Definition at line 274 of file icmpv6_proto.h.

◆ WaitForTrafficIntfMap

Constructor & Destructor Documentation

◆ Icmpv6PathPreferenceState()

Icmpv6PathPreferenceState::Icmpv6PathPreferenceState ( Icmpv6VrfState vrf_state,
uint32_t  vrf_id,
IpAddress  vm_ip_addr,
uint8_t  plen 
)

Definition at line 453 of file icmpv6_proto.cc.

◆ ~Icmpv6PathPreferenceState()

Icmpv6PathPreferenceState::~Icmpv6PathPreferenceState ( )

Definition at line 461 of file icmpv6_proto.cc.

Here is the call graph for this function:

Member Function Documentation

◆ HandleNA()

void Icmpv6PathPreferenceState::HandleNA ( uint32_t  itf)

Definition at line 377 of file icmpv6_proto.cc.

◆ IntfPresentInEvpnMap()

bool Icmpv6PathPreferenceState::IntfPresentInEvpnMap ( uint32_t  id)
inline

Definition at line 303 of file icmpv6_proto.h.

◆ IntfPresentInIpMap()

bool Icmpv6PathPreferenceState::IntfPresentInIpMap ( uint32_t  id)
inline

Definition at line 295 of file icmpv6_proto.h.

◆ IntfRetryCountInEvpnMap()

uint32_t Icmpv6PathPreferenceState::IntfRetryCountInEvpnMap ( uint32_t  id)
inline

Definition at line 315 of file icmpv6_proto.h.

◆ IntfRetryCountInIpMap()

uint32_t Icmpv6PathPreferenceState::IntfRetryCountInIpMap ( uint32_t  id)
inline

Definition at line 311 of file icmpv6_proto.h.

◆ ip()

const IpAddress& Icmpv6PathPreferenceState::ip ( ) const
inline

Definition at line 289 of file icmpv6_proto.h.

◆ mac()

MacAddress Icmpv6PathPreferenceState::mac ( void  ) const
inline

Definition at line 293 of file icmpv6_proto.h.

◆ SendNeighborSolicit() [1/2]

bool Icmpv6PathPreferenceState::SendNeighborSolicit ( )

Definition at line 533 of file icmpv6_proto.cc.

◆ SendNeighborSolicit() [2/2]

bool Icmpv6PathPreferenceState::SendNeighborSolicit ( WaitForTrafficIntfMap wait_for_traffic_map,
NDTransmittedIntfMap nd_transmitted_map 
)

Definition at line 469 of file icmpv6_proto.cc.

Here is the call graph for this function:

◆ SendNeighborSolicitForAllIntf()

void Icmpv6PathPreferenceState::SendNeighborSolicitForAllIntf ( const AgentRoute route)

Definition at line 586 of file icmpv6_proto.cc.

Here is the call graph for this function:

◆ StartTimer()

void Icmpv6PathPreferenceState::StartTimer ( )

Definition at line 551 of file icmpv6_proto.cc.

Here is the call graph for this function:

◆ vrf_state()

Icmpv6VrfState* Icmpv6PathPreferenceState::vrf_state ( )
inline

Definition at line 285 of file icmpv6_proto.h.

Friends And Related Function Documentation

◆ intrusive_ptr_add_ref

void intrusive_ptr_add_ref ( Icmpv6PathPreferenceState ps)
friend

Definition at line 440 of file icmpv6_proto.cc.

◆ intrusive_ptr_release

void intrusive_ptr_release ( Icmpv6PathPreferenceState ps)
friend

Definition at line 444 of file icmpv6_proto.cc.

Member Data Documentation

◆ evpn_wait_for_traffic_map_

WaitForTrafficIntfMap Icmpv6PathPreferenceState::evpn_wait_for_traffic_map_
private

Definition at line 330 of file icmpv6_proto.h.

◆ kMaxRetry

const uint32_t Icmpv6PathPreferenceState::kMaxRetry = 30 * 5
static

Definition at line 265 of file icmpv6_proto.h.

◆ kNSTryCount

const uint32_t Icmpv6PathPreferenceState::kNSTryCount = 9
static

Definition at line 271 of file icmpv6_proto.h.

◆ kTimeout

const uint32_t Icmpv6PathPreferenceState::kTimeout = 2000
static

Definition at line 267 of file icmpv6_proto.h.

◆ kTimeoutMultiplier

const uint32_t Icmpv6PathPreferenceState::kTimeoutMultiplier = 5
static

Definition at line 269 of file icmpv6_proto.h.

◆ l3_wait_for_traffic_map_

WaitForTrafficIntfMap Icmpv6PathPreferenceState::l3_wait_for_traffic_map_
private

Definition at line 329 of file icmpv6_proto.h.

◆ mac_

MacAddress Icmpv6PathPreferenceState::mac_
private

Definition at line 326 of file icmpv6_proto.h.

◆ ns_req_timer_

Timer* Icmpv6PathPreferenceState::ns_req_timer_
private

Definition at line 323 of file icmpv6_proto.h.

◆ plen_

uint8_t Icmpv6PathPreferenceState::plen_
private

Definition at line 327 of file icmpv6_proto.h.

◆ refcount_

tbb::atomic<int> Icmpv6PathPreferenceState::refcount_
private

Definition at line 331 of file icmpv6_proto.h.

◆ svc_ip_

IpAddress Icmpv6PathPreferenceState::svc_ip_
private

Definition at line 328 of file icmpv6_proto.h.

◆ vm_ip_

IpAddress Icmpv6PathPreferenceState::vm_ip_
private

Definition at line 325 of file icmpv6_proto.h.

◆ vrf_id_

uint32_t Icmpv6PathPreferenceState::vrf_id_
private

Definition at line 324 of file icmpv6_proto.h.

◆ vrf_state_

Icmpv6VrfState* Icmpv6PathPreferenceState::vrf_state_
private

Definition at line 322 of file icmpv6_proto.h.


The documentation for this class was generated from the following files: