STP helper functions. More...
#include "stp/stp.h"Go to the source code of this file.
| Data Structures | |
| struct | StpParamName | 
| Parameter value/name binding.  More... | |
| Functions | |
| void | stpLock (StpBridgeContext *context) | 
| Acquire exclusive access to the STP bridge context.  More... | |
| void | stpUnlock (StpBridgeContext *context) | 
| Release exclusive access to the STP bridge context.  More... | |
| void | stpTick (StpBridgeContext *context) | 
| STP tick handler.  More... | |
| StpBridgePort * | stpGetBridgePort (StpBridgeContext *context, uint16_t portId) | 
| Retrieve the port that matches the specified port number.  More... | |
| int_t | stpComparePortNum (uint16_t portId1, uint16_t portId2) | 
| Compare port numbers.  More... | |
| int_t | stpCompareBridgeAddr (const MacAddr *addr1, const MacAddr *addr2) | 
| Compare bridge addresses.  More... | |
| int_t | stpCompareBridgeId (const StpBridgeId *id1, const StpBridgeId *id2) | 
| Compare bridge identifiers.  More... | |
| void | stpUpdateTopologyChange (StpBridgeContext *context, bool_t value) | 
| Set the Topology Change flag.  More... | |
| void | stpUpdatePortState (StpBridgePort *port, StpPortState state) | 
| Set port state.  More... | |
| void | stpUpdateAgeingTime (StpBridgeContext *context, uint32_t ageingTime) | 
| Set ageing time for dynamic filtering entries.  More... | |
| void | stpEnableRsvdMcastTable (StpBridgeContext *context, bool_t enable) | 
| Enable reserved multicast table.  More... | |
| error_t | stpAddStaticFdbEntry (StpBridgeContext *context, const MacAddr *macAddr, bool_t override) | 
| Add a new entry to the static MAC table.  More... | |
| error_t | stpDeleteStaticFdbEntry (StpBridgeContext *context, const MacAddr *macAddr) | 
| Remove an entry from the static MAC table.  More... | |
| error_t | stpConfigurePermanentDatabase (StpBridgeContext *context) | 
| Configure the permanent database.  More... | |
| void | stpUnconfigurePermanentDatabase (StpBridgeContext *context) | 
| Unconfigure the permanent database.  More... | |
| void | stpGeneratePortAddr (StpBridgePort *port) | 
| Port's MAC address generation.  More... | |
| bool_t | stpCheckBridgeParams (uint_t maxAge, uint_t helloTime, uint_t forwardDelay) | 
| Check bridge parameters.  More... | |
| const char_t * | stpGetParamName (uint_t value, const StpParamName *paramList, size_t paramListLen) | 
| Convert a parameter to string representation.  More... | |
| void | stpStartTimer (StpTimer *timer, uint_t value) | 
| Start timer.  More... | |
| void | stpStopTimer (StpTimer *timer) | 
| Stop timer.  More... | |
| bool_t | stpIncrementTimer (StpTimer *timer, uint_t timeout) | 
| Increment the timer and check for expiration.  More... | |
Detailed Description
STP helper functions.
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2019-2025 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.
- Version
- 2.5.4
Definition in file stp_misc.h.
Function Documentation
◆ stpAddStaticFdbEntry()
| error_t stpAddStaticFdbEntry | ( | StpBridgeContext * | context, | 
| const MacAddr * | macAddr, | ||
| bool_t | override | ||
| ) | 
Add a new entry to the static MAC table.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] macAddr MAC address to be added [in] override This flag specifies whether packets received with a destination address that matches the MAC address will be forwarded regardless of the port state 
- Returns
- Error code
Definition at line 484 of file stp_misc.c.
◆ stpCheckBridgeParams()
Check bridge parameters.
- Parameters
- 
  [in] maxAge Value of the Bridge Max Age parameter [in] helloTime Value of the Bridge Hello Time parameter [in] forwardDelay Value of the Bridge Forward Delay parameter 
- Returns
- TRUE if the set of parameters is valid, else FALSE
Definition at line 672 of file stp_misc.c.
◆ stpCompareBridgeAddr()
Compare bridge addresses.
- Parameters
- 
  [in] addr1 First bridge address [in] addr2 Second bridge address 
- Returns
- The function returns 1 if addr1 is greater than addr2, 0 if addr1 is the same as addr2 and -1 if addr1 is less than addr2
Definition at line 281 of file stp_misc.c.
◆ stpCompareBridgeId()
| int_t stpCompareBridgeId | ( | const StpBridgeId * | id1, | 
| const StpBridgeId * | id2 | ||
| ) | 
Compare bridge identifiers.
- Parameters
- 
  [in] id1 First bridge identifier [in] id2 Second bridge identifier 
- Returns
- The function returns 1 if id1 is greater than id2, 0 if id1 is the same as id2 and -1 if id1 is less than id2
Definition at line 296 of file stp_misc.c.
◆ stpComparePortNum()
| int_t stpComparePortNum | ( | uint16_t | portId1, | 
| uint16_t | portId2 | ||
| ) | 
Compare port numbers.
- Parameters
- 
  [in] portId1 First port identifier [in] portId2 Second port identifier 
- Returns
- The function returns zero if the port numbers are the same and a non-zero value if the port numbers are different
Definition at line 244 of file stp_misc.c.
◆ stpConfigurePermanentDatabase()
| error_t stpConfigurePermanentDatabase | ( | StpBridgeContext * | context | ) | 
Configure the permanent database.
- Parameters
- 
  [in] context Pointer to the STP bridge context 
- Returns
- Error code
Definition at line 561 of file stp_misc.c.
◆ stpDeleteStaticFdbEntry()
| error_t stpDeleteStaticFdbEntry | ( | StpBridgeContext * | context, | 
| const MacAddr * | macAddr | ||
| ) | 
Remove an entry from the static MAC table.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] macAddr MAC address to be removed from the table 
- Returns
- Error code
Definition at line 523 of file stp_misc.c.
◆ stpEnableRsvdMcastTable()
| void stpEnableRsvdMcastTable | ( | StpBridgeContext * | context, | 
| bool_t | enable | ||
| ) | 
Enable reserved multicast table.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] enable Enable or disable reserved group addresses 
Definition at line 457 of file stp_misc.c.
◆ stpGeneratePortAddr()
| void stpGeneratePortAddr | ( | StpBridgePort * | port | ) | 
Port's MAC address generation.
- Parameters
- 
  [in] port Pointer to the bridge port context 
Definition at line 633 of file stp_misc.c.
◆ stpGetBridgePort()
| StpBridgePort* stpGetBridgePort | ( | StpBridgeContext * | context, | 
| uint16_t | portId | ||
| ) | 
Retrieve the port that matches the specified port number.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] portId Port identifier 
- Returns
- Pointer to the matching port, if any
Definition at line 212 of file stp_misc.c.
◆ stpGetParamName()
| const char_t* stpGetParamName | ( | uint_t | value, | 
| const StpParamName * | paramList, | ||
| size_t | paramListLen | ||
| ) | 
Convert a parameter to string representation.
- Parameters
- 
  [in] value Parameter value [in] paramList List of acceptable parameters [in] paramListLen Number of entries in the list 
- Returns
- NULL-terminated string describing the parameter
Definition at line 701 of file stp_misc.c.
◆ stpIncrementTimer()
Increment the timer and check for expiration.
- Parameters
- 
  [in] timer Pointer the timer to increment [in] timeout Timeout value 
- Returns
- TRUE if the timer has expired, else FALSE
Definition at line 757 of file stp_misc.c.
◆ stpLock()
| void stpLock | ( | StpBridgeContext * | context | ) | 
Acquire exclusive access to the STP bridge context.
- Parameters
- 
  [in] context Pointer to the STP bridge context 
Definition at line 59 of file stp_misc.c.
◆ stpStartTimer()
Start timer.
- Parameters
- 
  [in] timer Pointer the timer to start (or restart) [in] value Initial value of the timer 
Definition at line 729 of file stp_misc.c.
◆ stpStopTimer()
| void stpStopTimer | ( | StpTimer * | timer | ) | 
Stop timer.
- Parameters
- 
  [in] timer Pointer the timer to stop 
Definition at line 743 of file stp_misc.c.
◆ stpTick()
| void stpTick | ( | StpBridgeContext * | context | ) | 
STP tick handler.
This routine must be called at one second intervals
- Parameters
- 
  [in] context Pointer to the STP bridge context 
Definition at line 86 of file stp_misc.c.
◆ stpUnconfigurePermanentDatabase()
| void stpUnconfigurePermanentDatabase | ( | StpBridgeContext * | context | ) | 
Unconfigure the permanent database.
- Parameters
- 
  [in] context Pointer to the STP bridge context 
Definition at line 606 of file stp_misc.c.
◆ stpUnlock()
| void stpUnlock | ( | StpBridgeContext * | context | ) | 
Release exclusive access to the STP bridge context.
- Parameters
- 
  [in] context Pointer to the STP bridge context 
Definition at line 71 of file stp_misc.c.
◆ stpUpdateAgeingTime()
| void stpUpdateAgeingTime | ( | StpBridgeContext * | context, | 
| uint32_t | ageingTime | ||
| ) | 
Set ageing time for dynamic filtering entries.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] ageingTime Aging time, in seconds 
Definition at line 427 of file stp_misc.c.
◆ stpUpdatePortState()
| void stpUpdatePortState | ( | StpBridgePort * | port, | 
| StpPortState | state | ||
| ) | 
Set port state.
- Parameters
- 
  [in] port Pointer to the bridge port context [in] state Port state (disabled, learning or forwarding) 
Definition at line 358 of file stp_misc.c.
◆ stpUpdateTopologyChange()
| void stpUpdateTopologyChange | ( | StpBridgeContext * | context, | 
| bool_t | value | ||
| ) | 
Set the Topology Change flag.
- Parameters
- 
  [in] context Pointer to the STP bridge context [in] value Value of the Topology Change flag 
Definition at line 325 of file stp_misc.c.
