DEENESPTFRRUARHIKOZHNL

модуль ara::fw — Firewall

Diese Seite wurde vollständig KI-generiert auf Basis von SWS Firewall (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

Руководство по модулюСОЗДАНО ИИ

Переключает зависимые от состояния наборы правил Firewall платформы и сообщает о заблокированных пакетах как о Security Events.
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 9267f9cbcba3 Происхождение Открытые вопросы (3)
Причинный якорь: R25-11 Действует с R25-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Переключает зависимые от состояния наборы правил Firewall платформы и сообщает о заблокированных пакетах как о Security Events.

Functional Cluster Firewall фильтрует сетевые пакеты в соответствии с зависимыми от состояния наборами правил из манифеста и сообщает о заблокированных пакетах в IdsM как о Security Events (EXP_PlatformDesign с. 92). Приложения выбирают активное состояние Firewall через FirewallStateSwitchInterface::SwitchFirewallState. Метод возвращает ara::core::Future<void> и сообщает об ошибках, таких как kServiceNotAvailable или kInvalidStateDependentFirewall [AP_SWS_Fw_82008]. Состояния не являются фиксированным списком, а генерируются как перечисление для каждого смоделированного интерфейса. Экземпляры интерфейса можно только перемещать, но не копировать.

Модуль fw специфицирует основанный на демоне Functional Cluster Firewall платформы Adaptive Platform. Его прикладным API является интерфейс FirewallStateSwitchInterface с операцией SwitchFirewallState(), которую использует Adaptive Application (EXP_SWArchitecture с. 126). У кластера две задачи: он переключает состояние Firewall и сообщает о Security Events в Intrusion Detection System Manager (EXP_SWArchitecture с. 197).

kontext app Adaptive Application (OEM application) fw FC Firewall «aapFunctionalCluster», daemon-based app->fw SwitchFirewallState() через FirewallStateSwitchInterface eng Firewall Engine fw->eng konfiguriert Engine os Operating System fw->os applyRule() je FirewallRule (informativ) idsm Intrusion Detection System Manager (IdsM) fw->idsm meldet SEvs (blockierte Pakete) mm Machine Manifest (Filterregeln) mm->fw предоставляет конфигурацию Firewall

Контекстная диаграмма: FC Firewall связывает конфигурацию манифеста, задание состояния приложением, применение правил в операционной системе и отправку сообщений SEv в IdsM. Источники: EXP_PlatformDesign с. 97, EXP_SWArchitecture с. 197

Фильтрация зависит от состояния. OEM определяет такие состояния, как вождение, парковка или диагностика, и к пакету применяются только правила активного состояния (EXP_PlatformDesign с. 92). В манифесте AdaptiveFirewallModuleInstantiation объединяет для этого элементы StateDependentFirewall. Каждый из них содержит упорядоченные свойства правил, опциональный defaultAction и ссылки на соответствующие состояния (TPS_ManifestSpecification с. 679). В коде состояния представлены в виде сгенерированного для каждого интерфейса перечисления в ara::fw::states [AP_SWS_Fw_81001].

Приложение создает объект интерфейса из ara::core::InstanceSpecifier. Этот конструктор является потокобезопасным (thread-safe) [AP_SWS_Fw_82002]. SwitchFirewallState является noexcept и возвращает ara::core::Future<void> [AP_SWS_Fw_82008]. Внутри кластер согласно сценарию применяет каждое правило Firewall по отдельности в операционной системе (EXP_SWArchitecture с. 232). Экземпляры нельзя копировать, но можно перемещать. Перемещение и деструктор не являются потокобезопасными [AP_SWS_Fw_82004] [AP_SWS_Fw_82006].

Смена состояния FirewallAdaptive ApplicationFC Firewall (FirewallStateSwitchInterface)Operating SystemUse Case: InitialisierungFirewallStateSwitchInterface(instance)explicit, noexcept, thread-safeUse Case: ZustandswechselSwitchFirewallState(firewallState)Интерпретация: значение сгенерированного перечисления состоянийВозврат: ara::core::Future<void>altПереход возможенloopforeach FirewallRuleapplyRule()«aapInformative»Future выполнено (void)FehlerFuture с FwErrc::kServiceNotAvailableили FwErrc::kInvalidStateDependentFirewallПосле этого фильтрацию выполняют только правилаактивного состояния

Диаграмма последовательности: запрос на смену состояния возвращается в виде Future. Между этим каждое правило применяется по отдельности. Источники: EXP_SWArchitecture с. 232, [AP_SWS_Fw_82008]

В случае ошибки Future содержит FwErrc::kServiceNotAvailable или FwErrc::kInvalidStateDependentFirewall [AP_SWS_Fw_83001]. Значение можно понять только из названий: служба, вероятно, недоступна, или для целевого состояния отсутствует корректная конфигурация правил. Вопрос Q-45e3225696efb3dc (открытый) Через FwErrorDomain::ThrowAsException ошибку можно выбросить как FwException [AP_SWS_Fw_83012]. Заблокированные пакеты не являются ошибкой API. Они передаются как Security Events в IdsM, причем в R23-11 дополнительно различаются по отличающемуся протоколу (SWS_Firewall с. 31).

Роль FC Firewall между приложением, операционной системой и IdsM

Модуль fw описывает Functional Cluster Firewall платформы Adaptive Platform. Он основан на демоне и реализует интерфейс FirewallStateSwitchInterface с операцией SwitchFirewallState(). Adaptive Application использует этот интерфейс через отношение «use» (EXP_SWArchitecture с. 126). Прецеденты использования (Use Cases) ограничивают кластер двумя задачами. «Switch Firewall State» инициируется Adaptive Application при участии операционной системы. «Report Security Event» направлен к Intrusion Detection System Manager, который также основан на демоне (EXP_SWArchitecture с. 197).

Архитектурный обзор разделяет конфигурацию, управление и выполнение:

  • Machine Manifest предоставляет правила фильтрации.
  • FC Firewall конфигурирует с их помощью Firewall Engine.
  • OEM-приложение задает состояние Firewall.
  • Кластер сообщает о Security Events (SEv) в IdsM (EXP_PlatformDesign с. 97).

На переднем плане находятся два сценария использования. Первый — фильтрация, зависящая от состояния, со специфичными для OEM состояниями, такими как движение, парковка или сеанс диагностики. Второй — поддержка Intrusion Detection System посредством Security Events при заблокированных сообщениях. Квалификацию, передачу в SOC или долговременное хранение берет на себя IdsM (EXP_PlatformDesign с. 92). Единственным прикладным API модуля является смена состояния [AP_SWS_Fw_82008].

kontext app Adaptive Application (OEM application) fw FC Firewall «aapFunctionalCluster», daemon-based app->fw SwitchFirewallState() через FirewallStateSwitchInterface eng Firewall Engine fw->eng konfiguriert Engine os Operating System fw->os applyRule() je FirewallRule (informativ) idsm Intrusion Detection System Manager (IdsM) fw->idsm meldet SEvs (blockierte Pakete) mm Machine Manifest (Filterregeln) mm->fw предоставляет конфигурацию Firewall

Контекстная диаграмма: FC Firewall принимает конфигурацию из Machine Manifest и задаваемые приложением состояния. Он управляет Engine и операционной системой и сообщает о SEv в IdsM. Источники: EXP_PlatformDesign с. 97, EXP_SWArchitecture с. 197, EXP_SWArchitecture с. 232

Состояния Firewall: от автомата состояний в модели к сгенерированному перечислению

В метамодели манифеста FirewallStateSwitchInterface специализирует PortInterface. Через роль firewallStateMachine он агрегирует произвольное количество (0..*) элементов ModeDeclarationGroupPrototype (TPS_ManifestSpecification с. 263). Отдельные состояния представляют собой ModeDeclaration с опциональным атрибутом value: PositiveInteger (TPS_ManifestSpecification с. 679).

Для каждого смоделированного интерфейса на этой основе генерируется собственное перечисление enum class {<fwssi-sn>} : std::uint32_t в пространстве имен ara::fw::states. Оно подключается через ara/fw/states/{<fwssi-sn>}.h [AP_SWS_Fw_81001]. Для каждого смоделированного состояния Firewall создается элемент перечисления (enumerator) {<symbol-fw-state>} = {<fw-state-value>} [AP_SWS_Fw_81002].

Для пользователей это означает: фиксированного в масштабах платформы списка состояний не существует. Какие состояния существуют, определяет модель OEM (EXP_PlatformDesign с. 92). SwitchFirewallState ожидает параметр firewallState типа EnumT [AP_SWS_Fw_82008]. Интерпретация: EnumT, вероятно, соответствует перечислению состояний, сгенерированному для соответствующего интерфейса. Вопрос Q-26dbe38f70cb0222 (открытый) В пользу этого говорит то, что [AP_SWS_Fw_81001] явно определяет их как состояния «for FirewallStateSwitchInterface».

zustandsmodell pi PortInterface fwssi FirewallStateSwitchInterface fwssi->pi spezialisiert mdgp ModeDeclarationGroupPrototype fwssi->mdgp firewallStateMachine 0..* en enum class {<fwssi-sn>} : std::uint32_t namespace ara::fw::states ara/fw/states/{<fwssi-sn>}.h fwssi->en Codegenerierung je Interface md ModeDeclaration value: PositiveInteger [0..1] mdgp->md Состояния (через ModeDeclarationGroup) er Enumerator je Zustand {<symbol-fw-state>} = {<fw-state-value>} en->er je modelliertem Zustand api SwitchFirewallState(EnumT firewallState) er->api Интерпретация: аргумент типа EnumT

Контекстная диаграмма (модель — код): состояния берутся из автомата состояний интерфейса в модели. Для каждого интерфейса генерируется перечисление в ara::fw::states. Источники: TPS_ManifestSpecification с. 263, [AP_SWS_Fw_81001], [AP_SWS_Fw_81002], [AP_SWS_Fw_82008]

Конфигурация манифеста: экземпляр модуля, зависимые от состояния наборы правил и сопоставление портов

Специфичные для машины настройки модуля Firewall собираются в AdaptiveFirewallModuleInstantiation. Соответствующее определение имеет в R25-11 статус DRAFT (TPS_ManifestSpecification с. 677). Экземпляр модуля специализирует NonOsModuleInstantiation и ссылается через stateDepFirewall на любое количество элементов StateDependentFirewall.

StateDependentFirewall содержит:

  • опционально defaultAction типа FirewallActionEnum,
  • упорядоченные firewallRuleProps,
  • через firewallState (instanceRef) ссылки на ModeDeclaration, в которых оно действует (TPS_ManifestSpecification с. 679).

System Template кратко описывает их как «Firewall rules that are defined in a firewall state» (TPS_SystemTemplate с. 644).

Сами правила представляют собой элементы FirewallRule с такими атрибутами, как bucketSize и refillAmount. Кроме того, метамодель содержит NetworkLayerRule и TransportLayerRule, последние, среди прочего, с диапазонами портов и checksumVerification. Также CouplingElement может агрегировать правила через firewallRule (TPS_ManifestSpecification с. 679). Для получения подробной информации System Template явно отсылает к спецификации манифеста (TPS_SystemTemplate с. 644).

Связь с приложением устанавливает AdaptiveFirewallToPortPrototypeMapping. Он отображает экземпляр модуля (ссылка firewall, 0..1) на RPortPrototype приложения, который типизирован интерфейсом переключения состояний (TPS_ManifestSpecification с. 677). Действуют два ограничения:

  • В примечании к классу интерфейс называется FirewallModeSwitchInterface, тогда как в заголовке рисунка и в API — FirewallStateSwitchInterface. Для кода решающее значение имеет имя из [AP_SWS_Fw_82002].
  • Класс отображения и его ссылка имеют статус candidate (TPS_ManifestSpecification с. 677).
manifest inst AdaptiveFirewallModuleInstantiation (NonOsModuleInstantiation) sdf StateDependentFirewall defaultAction: FirewallActionEnum [0..1] inst->sdf stateDepFirewall 0..* props firewallRuleProps 0..*, geordnet sdf->props aggregiert md ModeDeclaration (Firewall-Zustand) sdf->md firewallState 0..* (instanceRef) ce CouplingElement rule FirewallRule bucketSize, refillAmount ce->rule firewallRule 0..* map AdaptiveFirewallToPortPrototypeMapping (candidate) map->inst firewall 0..1 rport RPortPrototype Adaptive Application map->rport ordnet zu fwssi FirewallStateSwitchInterface rport->fwssi typisiert durch

Контекстная диаграмма (метамодель): экземпляр модуля объединяет зависимые от состояния наборы правил. Отображение связывает их с R-портом приложения. Источники: TPS_ManifestSpecification с. 677, TPS_ManifestSpecification с. 679, TPS_ManifestSpecification с. 677

Последовательность смены состояния с помощью SwitchFirewallState

На стороне кода приложение подключает ara/fw/firewall_state.h. Оно создает ara::fw::FirewallStateSwitchInterface через явный конструктор из ara::core::InstanceSpecifier. Этот конструктор является noexcept и потокобезопасным (thread-safe) [AP_SWS_Fw_82002].

Смену состояния запрашивает SwitchFirewallState(EnumT firewallState). Метод является noexcept и возвращает ara::core::Future<void>. Поэтому определенные для него ошибки FwErrc::kServiceNotAvailable и FwErrc::kInvalidStateDependentFirewall возвращаются через Future, а не как исключение [AP_SWS_Fw_82008].

Сценарий «Switch Firewall State» показывает внутренний процесс в три шага (EXP_SWArchitecture с. 232):

  1. Приложение вызывает SwitchFirewallState() в FC Firewall.
  2. Кластер вызывает в цикле «foreach FirewallRule» каждый раз applyRule() в операционной системе.
  3. Только после завершения цикла ответ возвращается приложению.

applyRule() отмечен там как «aapInformative». Способ активации правил в операционной системе не определен в полезной нагрузке как API платформы. Версия R22-11 показывала ту же последовательность в качестве успешного сценария (EXP_SWArchitecture с. 158). После переключения проверку и фильтрацию выполняют только правила активного состояния (EXP_PlatformDesign с. 92).

Смена состояния FirewallAdaptive ApplicationFC Firewall (FirewallStateSwitchInterface)Operating SystemUse Case: InitialisierungFirewallStateSwitchInterface(instance)explicit, noexcept, thread-safeUse Case: ZustandswechselSwitchFirewallState(firewallState)Интерпретация: значение сгенерированного перечисления состоянийВозврат: ara::core::Future<void>altПереход возможенloopforeach FirewallRuleapplyRule()«aapInformative»Future выполнено (void)FehlerFuture с FwErrc::kServiceNotAvailableили FwErrc::kInvalidStateDependentFirewallПосле этого фильтрацию выполняют только правилаактивного состояния

Диаграмма последовательности: смена состояния подтверждается асинхронно через Future. Внутри кластер применяет каждое правило по отдельности. Источники: EXP_SWArchitecture с. 232, [AP_SWS_Fw_82002], [AP_SWS_Fw_82008]

Время жизни, правила копирования и перемещения класса интерфейса

Специальные функции FirewallStateSwitchInterface определяют, как разрешается передавать экземпляры (от [AP_SWS_Fw_82003] до [AP_SWS_Fw_82007]):

ЭлементОпределениеПотокобезопасность
Конструктор из InstanceSpecifierexplicit, noexcept [AP_SWS_Fw_82002]thread-safe
Конструктор копирования / операция присваивания копированием=delete [AP_SWS_Fw_82004] [AP_SWS_Fw_82005]–
Конструктор перемещения / операция присваивания перемещениемnoexcept [AP_SWS_Fw_82006] [AP_SWS_Fw_82007]not thread-safe
Деструкторnoexcept [AP_SWS_Fw_82003]not thread-safe

Отсюда следуют три правила использования:

  • Экземпляр нельзя дублировать, его можно только передавать с помощью перемещения [AP_SWS_Fw_82004] [AP_SWS_Fw_82006].
  • Приложение должно самостоятельно защитить перемещение и уничтожение от конкурентного доступа [AP_SWS_Fw_82003].
  • Интерпретация: исходный объект после перемещения, вероятно, больше не следует использовать для SwitchFirewallState, поскольку требования описывают только передачу, но не оставшееся состояние [AP_SWS_Fw_82007]. Вопрос Q-ccf0737ee5133103 (открытый)

Относительно потокобезопасности самого SwitchFirewallState текст требований не содержит сведений [AP_SWS_Fw_82008].

lebenszyklus start gueltig Действительный экземпляр start->gueltig FirewallStateSwitchInterface(instance) noexcept, thread-safe gueltig->gueltig SwitchFirewallState(...) gueltig->gueltig в качестве целевого объекта перемещения (интерпретация: берет на себя роль) uebertragen Исходный объект после перемещения (интерпретация: больше не использовать) gueltig->uebertragen Move-Konstruktor / Move-Zuweisung noexcept, not thread-safe (Kopieren: =delete) zerstoert Уничтожен gueltig->zerstoert ~FirewallStateSwitchInterface() noexcept, not thread-safe uebertragen->zerstoert ~FirewallStateSwitchInterface()

Диаграмма состояний: экземпляр создается из InstanceSpecifier, передается только перемещением и в конечном счете уничтожается. Источники: [AP_SWS_Fw_82002], [AP_SWS_Fw_82003], [AP_SWS_Fw_82006], [AP_SWS_Fw_82007]

Фильтрация пакетов в активном состоянии и регистрация Security Events

Правила Firewall можно сопоставить состоянию Firewall. Для проверки пакета используются только правила текущего активного состояния (EXP_PlatformDesign с. 92). Для каждого состояния StateDependentFirewall предоставляет упорядоченные свойства правил и опциональное defaultAction (TPS_ManifestSpecification с. 679).

Версия SWS R23-11 описывает сопоставление Security Events более подробно (SWS_Firewall с. 31):

  • Если пакет не подходит ни под одно правило, применяется действие по умолчанию.
  • Если действие по умолчанию блокирует пакет, кластер определяет отклоняющийся протокол. Определяющим является правило с наибольшим количеством совпадающих уровней ISO/OSI, считая с самого нижнего уровня. Первый несовпадающий уровень выше него определяет протокол.
  • Для этого протокола в IdsM отправляется сообщение о SEv, например SEV_FW_PACKET_BLOCKED_DATALINKLAYER_MISMATCH (Ethernet), SEV_FW_PACKET_BLOCKED_IPV4_MISMATCH, SEV_FW_PACKET_BLOCKED_IPV6_MISMATCH или SEV_FW_PACKET_BLOCKED_ICMP_MISMATCH.

Эти подробности взяты из R23-11. Соответствующие требования не входят в полезную нагрузку R25-11 и поэтому приведены здесь в качестве пояснения, а не как нормативные. Принцип, согласно которому заблокированные сообщения отправляются в IdsM как SEv, согласно описанию архитектуры действует и для R25-11 (EXP_PlatformDesign с. 92).

paketpruefung start ein Сетевой пакет поступает start->ein regeln Применить правила активного состояния Firewall ein->regeln passt подходит ли правило? regeln->passt regel применяется подходящее правило passt->regel да da defaultAction greift passt->da нет ende regel->ende blockiert durch Default-Aktion blockiert? da->blockiert ebene Определить протокол несоответствия: правило с наибольшим числом совпадающих уровней начиная с самого нижнего уровня (R23-11) blockiert->ebene да blockiert->ende нет sev SEv an IdsM, z. B. SEV_FW_PACKET_BLOCKED_IPV4_MISMATCH ebene->sev sev->ende

Диаграмма деятельности: пакет проверяется на соответствие правилам активного состояния. Блокировка по умолчанию приводит к отправке протокольно-специфичного SEv в IdsM. Источники: EXP_PlatformDesign с. 92, SWS_Firewall с. 31 (R23-11)

Поведение при ошибке

Коды ошибок модуля определяет FwErrc в заголовке ara/fw/fw_error_domain.h: kServiceNotAvailable=1 и kInvalidStateDependentFirewall=2 [AP_SWS_Fw_83001]. Оба определены для SwitchFirewallState как возможные ошибки [AP_SWS_Fw_82008]. Интерпретация названий, так как в требованиях не указаны условия возникновения:

  • kServiceNotAvailable, по-видимому, сообщает о том, что демон-ориентированный FC Firewall не может предоставить сервис. Вопрос (открытый)
  • kInvalidStateDependentFirewall, по-видимому, сообщает о том, что для запрошенного состояния отсутствует допустимое StateDependentFirewall. Вопрос (открытый)

Домен ошибок следует привычному шаблону ara::core:

Те, кто работает с исключениями, могут преобразовать код ошибки в FwException с помощью ThrowAsException. Эта функция noexcept(false) и классифицирована как «not exception safe» [AP_SWS_Fw_83012] [AP_SWS_Fw_83005]. Заблокированные пакеты, напротив, не являются ошибкой API. Они отображаются как Security Events в IdsM (EXP_PlatformDesign с. 92).

fehler start aufruf SwitchFirewallState(firewallState) start->aufruf fut Оценить результат из ara::core::Future<void> aufruf->fut ok Fehler? fut->ok erfolg Zustandswechsel abgeschlossen ok->erfolg нет code FwErrc ok->code да ende erfolg->ende sna kServiceNotAvailable (1) Интерпретация: FC Firewall недоступен code->sna inv kInvalidStateDependentFirewall (2) Интерпретация: нет допустимого StateDependentFirewall для целевого состояния code->inv diag Diagnose: GetFwErrorDomain(), Name(), Message(errorCode) sna->diag inv->diag thr optional: ThrowAsException() wirft FwException diag->thr diag->ende без исключения thr->ende

Диаграмма деятельности: результат смены состояния оценивается через Future. Ошибки передаются через FwErrorDomain и при необходимости могут генерироваться как FwException. Источники: [AP_SWS_Fw_82008], [AP_SWS_Fw_83001], [AP_SWS_Fw_83011], [AP_SWS_Fw_83012]

Дальнейшие подробные доказательства

Следующие фрагменты содержат утверждения данного руководства; требования являются нормативными для R25-11 ([AP_SWS_Fw_82008]).

Руководство, созданное ИИ на основе содержащихся в полезной нагрузке требований и фрагментов документов для R25-11. Утверждения из других релизов отмечены; фрагменты, помеченные как интерпретация, нормативно не подтверждены.

Spezifikation: AUTOSAR_AP_SWS_Firewall.pdf (R25-11) · 23 API-Records

3 Klassen2 Namespaces1 Enumeration2 freie Funktionen

Карта тем

Подробный вид

Выберите элемент в оглавлении.

ara::fw

FwErrorDomain класс
FwException класс
GetFwErrorDomain функция

Returns a reference to the FwErrorDomain object.

constexpr const ara::core::ErrorDomain &GetFwErrorDomain() noexcept;
MakeErrorCode функция

Creates an ErrorCode instance.

constexpr ara::core::ErrorCode MakeErrorCode(ara::fw::FwErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
FwErrc перечисление

Defines the error codes for FwErrorDomain.

enum class FwErrc : ara::core::ErrorDomain::CodeType {...};

ara::fw::states

{<fwssi-sn>} перечисление

Defines the firewall states for FirewallStateSwitchInterface. The actual type is generated for each modeled interface.

enum class {<fwssi-sn>} : std::uint32_t {...};
{<symbol-fw-state>} переменная

Generated enumerator declaration for each modeled firewall state.

{<symbol-fw-state>} = {<fw-state-value>};

Пространства имён

Классы