rstp_prt.c File Reference

Port Role Transition state machine (PRT) More...

#include "rstp/rstp.h"
#include "rstp/rstp_fsm.h"
#include "rstp/rstp_prt.h"
#include "rstp/rstp_procedures.h"
#include "rstp/rstp_conditions.h"
#include "rstp/rstp_misc.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   RSTP_TRACE_LEVEL
 

Functions

void rstpPrtInit (RstpBridgePort *port)
 PRT state machine initialization. More...
 
void rstpPrtFsm (RstpBridgePort *port)
 PRT state machine implementation. More...
 
void rstpPrtDisabledPortFsm (RstpBridgePort *port)
 PRT state machine implementation (Disabled port role) More...
 
void rstpPrtDisabledPortChangeState (RstpBridgePort *port, RstpPrtState newState)
 Update PRT state machine state (Disabled port role) More...
 
void rstpPrtRootPortFsm (RstpBridgePort *port)
 PRT state machine implementation (Root port role) More...
 
void rstpPrtRootPortChangeState (RstpBridgePort *port, RstpPrtState newState)
 Update PRT state machine state (Root port role) More...
 
void rstpPrtDesignatedPortFsm (RstpBridgePort *port)
 PRT state machine implementation (Designated port role) More...
 
void rstpPrtDesignatedPortChangeState (RstpBridgePort *port, RstpPrtState newState)
 Update PRT state machine state (Designated port role) More...
 
void rstpPrtAlternatePortFsm (RstpBridgePort *port)
 PRT state machine implementation (Alternate or Backup port role) More...
 
void rstpPrtAlternatePortChangeState (RstpBridgePort *port, RstpPrtState newState)
 Update PRT state machine state (Alternate or Backup port role) More...
 

Variables

const RstpParamName rstpPrtStates []
 

Detailed Description

Port Role Transition state machine (PRT)

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2019-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneSTP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.4

Definition in file rstp_prt.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   RSTP_TRACE_LEVEL

Definition at line 32 of file rstp_prt.c.

Function Documentation

◆ rstpPrtAlternatePortChangeState()

void rstpPrtAlternatePortChangeState ( RstpBridgePort port,
RstpPrtState  newState 
)

Update PRT state machine state (Alternate or Backup port role)

Parameters
[in]portPointer to the bridge port context
[in]newStateNew state to switch to

Definition at line 718 of file rstp_prt.c.

◆ rstpPrtAlternatePortFsm()

void rstpPrtAlternatePortFsm ( RstpBridgePort port)

PRT state machine implementation (Alternate or Backup port role)

Parameters
[in]portPointer to the bridge port context

Definition at line 637 of file rstp_prt.c.

◆ rstpPrtDesignatedPortChangeState()

void rstpPrtDesignatedPortChangeState ( RstpBridgePort port,
RstpPrtState  newState 
)

Update PRT state machine state (Designated port role)

Parameters
[in]portPointer to the bridge port context
[in]newStateNew state to switch to

Definition at line 551 of file rstp_prt.c.

◆ rstpPrtDesignatedPortFsm()

void rstpPrtDesignatedPortFsm ( RstpBridgePort port)

PRT state machine implementation (Designated port role)

Parameters
[in]portPointer to the bridge port context

Definition at line 461 of file rstp_prt.c.

◆ rstpPrtDisabledPortChangeState()

void rstpPrtDisabledPortChangeState ( RstpBridgePort port,
RstpPrtState  newState 
)

Update PRT state machine state (Disabled port role)

Parameters
[in]portPointer to the bridge port context
[in]newStateNew state to switch to

Definition at line 224 of file rstp_prt.c.

◆ rstpPrtDisabledPortFsm()

void rstpPrtDisabledPortFsm ( RstpBridgePort port)

PRT state machine implementation (Disabled port role)

Parameters
[in]portPointer to the bridge port context

Definition at line 166 of file rstp_prt.c.

◆ rstpPrtFsm()

void rstpPrtFsm ( RstpBridgePort port)

PRT state machine implementation.

Parameters
[in]portPointer to the bridge port context

Definition at line 91 of file rstp_prt.c.

◆ rstpPrtInit()

void rstpPrtInit ( RstpBridgePort port)

PRT state machine initialization.

Parameters
[in]portPointer to the bridge port context

Definition at line 79 of file rstp_prt.c.

◆ rstpPrtRootPortChangeState()

void rstpPrtRootPortChangeState ( RstpBridgePort port,
RstpPrtState  newState 
)

Update PRT state machine state (Root port role)

Parameters
[in]portPointer to the bridge port context
[in]newStateNew state to switch to

Definition at line 379 of file rstp_prt.c.

◆ rstpPrtRootPortFsm()

void rstpPrtRootPortFsm ( RstpBridgePort port)

PRT state machine implementation (Root port role)

Parameters
[in]portPointer to the bridge port context

Definition at line 287 of file rstp_prt.c.

Variable Documentation

◆ rstpPrtStates

const RstpParamName rstpPrtStates[]
Initial value:
=
{
{RSTP_PRT_STATE_INIT_PORT, "INIT_PORT"},
{RSTP_PRT_STATE_DISABLE_PORT, "DISABLE_PORT"},
{RSTP_PRT_STATE_DISABLED_PORT, "DISABLED_PORT"},
{RSTP_PRT_STATE_ROOT_PROPOSED, "ROOT_PROPOSED"},
{RSTP_PRT_STATE_ROOT_AGREED, "ROOT_AGREED"},
{RSTP_PRT_STATE_REROOT, "REROOT"},
{RSTP_PRT_STATE_ROOT_FORWARD, "ROOT_FORWARD"},
{RSTP_PRT_STATE_ROOT_LEARN, "ROOT_LEARN"},
{RSTP_PRT_STATE_REROOTED, "REROOTED"},
{RSTP_PRT_STATE_ROOT_PORT, "ROOT_PORT"},
{RSTP_PRT_STATE_DESIGNATED_PROPOSE, "DESIGNATED_PROPOSE"},
{RSTP_PRT_STATE_DESIGNATED_SYNCED, "DESIGNATED_SYNCED"},
{RSTP_PRT_STATE_DESIGNATED_RETIRED, "DESIGNATED_RETIRED"},
{RSTP_PRT_STATE_DESIGNATED_FORWARD, "DESIGNATED_FORWARD"},
{RSTP_PRT_STATE_DESIGNATED_LEARN, "DESIGNATED_LEARN"},
{RSTP_PRT_STATE_DESIGNATED_DISCARD, "DESIGNATED_DISCARD"},
{RSTP_PRT_STATE_DESIGNATED_PORT, "DESIGNATED_PORT"},
{RSTP_PRT_STATE_ALTERNATE_PROPOSED, "ALTERNATE_PROPOSED"},
{RSTP_PRT_STATE_ALTERNATE_AGREED, "ALTERNATE_AGREED"},
{RSTP_PRT_STATE_BLOCK_PORT, "BLOCK_PORT"},
{RSTP_PRT_STATE_BACKUP_PORT, "BACKUP_PORT"},
{RSTP_PRT_STATE_ALTERNATE_PORT, "ALTERNATE_PORT"}
}

Definition at line 47 of file rstp_prt.c.

@ RSTP_PRT_STATE_DESIGNATED_PORT
Definition: rstp_prt.h:65
@ RSTP_PRT_STATE_DESIGNATED_LEARN
Definition: rstp_prt.h:63
@ RSTP_PRT_STATE_DISABLE_PORT
Definition: rstp_prt.h:50
@ RSTP_PRT_STATE_ALTERNATE_PORT
Definition: rstp_prt.h:70
@ RSTP_PRT_STATE_ROOT_FORWARD
Definition: rstp_prt.h:55
@ RSTP_PRT_STATE_DESIGNATED_FORWARD
Definition: rstp_prt.h:62
@ RSTP_PRT_STATE_DESIGNATED_PROPOSE
Definition: rstp_prt.h:59
@ RSTP_PRT_STATE_REROOT
Definition: rstp_prt.h:54
@ RSTP_PRT_STATE_DESIGNATED_RETIRED
Definition: rstp_prt.h:61
@ RSTP_PRT_STATE_DESIGNATED_SYNCED
Definition: rstp_prt.h:60
@ RSTP_PRT_STATE_ROOT_PORT
Definition: rstp_prt.h:58
@ RSTP_PRT_STATE_ROOT_LEARN
Definition: rstp_prt.h:56
@ RSTP_PRT_STATE_ROOT_PROPOSED
Definition: rstp_prt.h:52
@ RSTP_PRT_STATE_BACKUP_PORT
Definition: rstp_prt.h:69
@ RSTP_PRT_STATE_INIT_PORT
Definition: rstp_prt.h:49
@ RSTP_PRT_STATE_REROOTED
Definition: rstp_prt.h:57
@ RSTP_PRT_STATE_ALTERNATE_PROPOSED
Definition: rstp_prt.h:66
@ RSTP_PRT_STATE_ROOT_AGREED
Definition: rstp_prt.h:53
@ RSTP_PRT_STATE_BLOCK_PORT
Definition: rstp_prt.h:68
@ RSTP_PRT_STATE_DESIGNATED_DISCARD
Definition: rstp_prt.h:64
@ RSTP_PRT_STATE_ALTERNATE_AGREED
Definition: rstp_prt.h:67
@ RSTP_PRT_STATE_DISABLED_PORT
Definition: rstp_prt.h:51