CLASSIC
Modul: ethif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_ETHIF_SECTION_8_3_26_EthIf_SwitchPortGroupRequestMode
Wortlaut
8.3.26 EthIf_SwitchPortGroupRequestMode
[SWS_EthIf_91102]
Definition of API function EthIf_SwitchPortGroupRequest
Mode ⌈
Service Name
EthIf_SwitchPortGroupRequestMode
Syntax
Std_ReturnType EthIf_SwitchPortGroupRequestMode (
EthIf_SwitchPortGroupIdxType PortGroupIdx,
Eth_ModeType PortMode
)
Service ID [hex]
0x06
Sync/Async
Asynchronous
Reentrancy
Non Reentrant
PortGroupIdx
Index of the port group within the context of the Ethernet Interface
Parameters (in)
PortMode
ETH_MODE_DOWN: disable the Ethernet switch port group
ETH_MODE_ACTIVE: enable the Ethernet switch port group
ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST: enable the
port group and request for a wake-up on the network
Parameters (inout)
None
Parameters (out)
None
▽
△
Return value
Std_ReturnType
E_OK: success
E_NOT_OK: port group mode could not be changed
Description
Request a mode for the EthIfSwtPortGroup. The call shall be forwarded to EthSwt by calling
EthSwt_SetSwitchPortMode for all EthSwtPorts referenced by the port group.
Available via
EthIf.h
⌋()
[SWS_EthIf_00270] ⌈If EthIf_SwitchPortGroupRequestMode is called with
ETH_MODE_DOWN EthIf shall start a timer with EthIfSwitchOffPortTimedelay for all ports
of the respective EthIf_SwitchPortGroup if the mode ETH_MODE_DOWN has been requested for all EthIfSwitchPortGroups referencing the port and the current mode is
ETH_MODE_ACTIVE.⌋()
[SWS_EthIf_00271] ⌈If the timer to switch off ports (see [SWS_EthIf_00270]) elapses
for a port, EthIf shall call the following functions in the given order for the corresponding
EthSwtPort:
1. EthSwt_PortLinkStateRequest with ETHTRCV_LINK_STATE_DOWN
2. EthSwt_SetSwitchPortMode with ETH_MODE_DOWN
⌋()
Note: The implementation has to ensure that EthSwtPorts within EthIfSwitchPortGroups are only disabled if all prior activation request have been withdrawn.
This
could be realized e.g. by a counter mechanism.
Rationale:
Delaying to switch off EthSwtPorts by EthIfSwitchOffPortTimedelay is
needed to ensure a simultaneous switch-off of the Ethernet switch port and the Ethernet hardware (PHY or another Ethernet switch) of the connected communication
partner:
1. If the Ethernet hardware of the connected communication partner is an PHY,
then the EthIfSwitchOffPortTimedelay cover the time which is needed until the
PHY of the connected communication partner will be switched off, due to the NM
handling.
2. If the Ethernet hardware of the connected communication partner is an Ethernet
switch, then both EthSwtPorts should be switched off in the same point in time to
avoid link down recognition.
[SWS_EthIf_00273] ⌈If development error detection is enabled: the function shall
check that the service EthIf_Init was previously called. If the check fails, the function shall raise the development error ETHIF_E_UNINIT.⌋()
[SWS_EthIf_00274] ⌈If development error detection is enabled: the function shall
check that the provided parameter PortGroupIdx addresses a port group not referenced by any EthIfController. If the check fails, the function shall raise the development
error ETHIF_E_INV_PORT_GROUP_IDX.⌋()
Rationale: Avoid that a EthIfSwitchPortGroup which shall be controlled by EthIfController is incidentally called by BswM
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_EthernetInterface.pdf |
|---|---|
| Dokumentseite | Seite 77 |
| Ziel-Modul | ethif (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |