Enzyklopädie
2026-09-02 18:24:11
Wie funktionieren gemeinsame Datentypen der 5GC-SBI?
Erläutert, wie gemeinsame Datentypen der 5G-Core-SBI JSON-Parameter zwischen Netzwerkfunktionen vereinheitlichen, einschließlich Kennungen, Netzdaten, QoS, Abrechnung, Tracing, strukturierter Objekte und praktischer API-Fehlersuche.

Becke Telcom

Wie funktionieren gemeinsame Datentypen der 5GC-SBI?

Bei der Fehlersuche an Service-Based Interfaces in einem 5G Core stoßen viele Ingenieure auf dasselbe Problem. Der Request-Body, den ein AMF an ein SMF sendet, kann vertraute Felder wie SUPI, DNN, S-NSSAI, TAI, PDU Session ID und 5QI enthalten, trotzdem ist es oft schwierig zu beurteilen, ob die Nachricht tatsächlich gültig ist. Muss ein Feld als Zeichenkette oder als Ganzzahl codiert werden? Gibt es einen festgelegten Wertebereich? Darf jeder beliebige Wert verwendet werden, oder muss er aus einer vordefinierten Enumeration stammen? Kann ein Objekt weitere verschachtelte Parameter enthalten?

Die Antworten werden durch die gemeinsamen SBI-Datentypen festgelegt. Service-Based Interfaces verbinden Netzwerkfunktionen wie AMF, SMF, UDM, PCF und NRF, doch viele der zugrunde liegenden Parameter sind nicht auf eine einzelne NF beschränkt. Würde jeder Dienst diese Werte eigenständig definieren, enthielten die Spezifikationen unnötige Wiederholungen, und dieselbe Teilnehmerkennung oder derselbe QoS-Parameter könnte in verschiedenen APIs unterschiedlich dargestellt werden. Deshalb reicht es bei der Analyse von SBI-Verkehr nicht aus, HTTP-Methoden und Ressourcen-URIs zu prüfen. HTTP/2 legt fest, wie Requests transportiert werden, JSON legt fest, wie Daten dargestellt werden, und gemeinsame Datentypen beantworten eine grundlegendere Frage: welches Format und welche Validierungsregeln jeder JSON-Parameter einhalten muss.

Welche Probleme lösen gemeinsame Datentypen?

Sie lassen sich als gemeinsamer „Datenwortschatz“ für die gesamte servicebasierte API-Umgebung des 5GC verstehen. Ein Datentyp kann in einem AMF-Request vorkommen und zugleich von SMF, UDM oder PCF referenziert werden. Er gehört nicht zu einer einzelnen Schnittstelle, sondern stellt eine standardisierte Definition bereit, die in mehreren Diensten wiederverwendet werden kann.

Betrachten wir eine IPv4-Adresse. Nicht jede NF sollte selbst festlegen, wie diese Adresse als Zeichenkette dargestellt wird. Dasselbe gilt für PLMN-Informationen, bei denen MCC und MNC bestimmte Längen und Formate besitzen, sowie für Teilnehmer- und Gerätekennungen wie SUPI, GPSI und PEI, die jeweils eigenen Codierungsregeln folgen. Einheitliche Definitionen ermöglichen RESTful APIs zwischen verschiedenen NFs einen zuverlässigen Informationsaustausch.

Gemeinsame Datentypen müssen außerdem von NF-spezifischen Typen unterschieden werden. Gemeinsame Typen beschreiben Objekte, die wiederholt in verschiedenen Schnittstellen auftreten, während Geschäftsobjekte, die nur zu einer bestimmten Netzwerkfunktion gehören, in den jeweiligen Spezifikationen der 29er-Reihe definiert sind. In der Praxis referenziert eine einzelne SBI-API häufig beide Arten von Datentypen.

Ihr Umfang reicht weit über Netzwerkadressen hinaus. Gemeinsame Definitionen decken allgemeine Parameter, Teilnehmer- und Identitätsinformationen, 5G-Netzdaten, QoS, Abrechnung, Trace-Informationen und weitere wiederverwendbare Objekte ab. Zusammen bilden sie ein grundlegendes Datenmodell für SBI-Nachrichtenparameter.

Gemeinsame Datentypen der 5G-Core-SBI, die AMF, SMF, UDM und PCF für Kennungen, Netzinformationen, QoS, Abrechnung und Trace-Parameter gemeinsam nutzen
Gemeinsame SBI-Datentypen sorgen für eine einheitliche Datendarstellung zwischen den Netzwerkfunktionen des 5G Core und ermöglichen, Kennungen, Standortinformationen, QoS-Parameter und Abrechnungsdaten über mehrere Serviceschnittstellen hinweg wiederzuverwenden.

Wie unterscheiden sich die drei grundlegenden Datenstrukturen?

Strukturell lassen sich SBI-Parameter im Allgemeinen in drei Kategorien einteilen: einfache Datentypen, Enumerationstypen und strukturierte Datentypen. Diese drei Kategorien zu verstehen ist nützlicher, als einzelne Parameternamen auswendig zu lernen, denn die meisten Felder in Wireshark-Mitschnitten, API-Dokumentationen und OpenAPI-Definitionen passen in dieses Modell.

Einfache Datentypen sind die elementarsten Bausteine. Dazu gehören Zeichenkette, Ganzzahl, Zahl, Datum, Datum-Uhrzeit und Boolesch. Im 5GC werden diese Basistypen üblicherweise mit zusätzlichen Einschränkungen kombiniert, etwa Wertebereichen, Codierungsformaten oder Mustern regulärer Ausdrücke.

Eine IPv4-Adresse wird beispielsweise technisch als Zeichenkette dargestellt, aber nicht jede beliebige Zeichenkette ist gültig. Sie muss dem vorgeschriebenen IPv4-Format entsprechen. IPv6-Adressen, IPv6-Präfixe und MAC-Adressen besitzen jeweils eigene Formatvorgaben. Uint16, Uint32 und Uint64 definieren Wertebereiche für vorzeichenlose Ganzzahlen. Eine URI muss den URI-Formatregeln entsprechen, während DateTime-Werte das festgelegte Datums-/Zeitformat verwenden müssen.

Spezifikationen definieren außerdem häufig Typen mit dem Suffix Rm, beispielsweise Ipv4AddrRm, DateTimeRm und Uint32Rm. Diese Typen verwenden dasselbe zugrunde liegende Format wie ihre jeweiligen Basistypen, enthalten aber die OpenAPI-Eigenschaft nullable, sodass das Feld den Wert null enthalten darf.

Enumerationstypen funktionieren wie Auswahlfelder: Der Wert muss aus einer vordefinierten Menge gewählt werden. AccessType unterscheidet beispielsweise zwischen 3GPP_ACCESS und NON_3GPP_ACCESS. PduSessionType kann Werte wie IPV4, IPV6, IPV4V6, UNSTRUCTURED oder ETHERNET annehmen. CoreNetworkType kann 5GC oder EPC angeben.

Der Zweck einer Enumeration besteht darin, Mehrdeutigkeit zu vermeiden. Ein Consumer darf nicht einfach eine andere Zeichenkette erfinden, die vermeintlich dasselbe bedeutet. Er muss einen der in der Spezifikation ausdrücklich festgelegten Werte verwenden. Das ist ein häufiges Fehlerszenario: Der Feldname stimmt, aber der Enumerationswert ist ungültig, sodass die API den Request trotzdem ablehnt oder falsch interpretiert.

Strukturierte Datentypen kombinieren mehrere Attribute zu einem vollständigen Objekt. Diese Attribute können wiederum einfache Typen, Enumerationen oder andere strukturierte Objekte referenzieren und so ein hierarchisches Modell bilden.

ProblemDetails ist ein typisches Beispiel. Es kann Felder wie type, title, status, detail, instance, cause und invalidParams enthalten. TAI ist ein weiteres Beispiel und kombiniert eine PLMN ID mit einem TAC. GUAMI geht noch eine Ebene weiter und kombiniert eine PLMN ID mit einer AMF ID. Auf dieser Ebene kann sich die SBI-Analyse nicht mehr nur auf einzelne Felder konzentrieren; auch die Beziehungen zwischen den Attributen innerhalb des Objekts sind wichtig.

Wie werden Identitäts- und Netzparameter aufgebaut?

In realen Paketmitschnitten gehören Teilnehmer-, Identitäts- und 5G-Netzdaten zu den häufigsten SBI-Parametern. SUPI identifiziert einen Teilnehmer, GPSI steht für eine externe Teilnehmeridentität, PEI für eine permanente Gerätekennung, DNN bezeichnet ein Datennetz, und eine NF Instance ID identifiziert eine NF-Instanz eindeutig.

Die meisten dieser Felder wirken wie einfache Zeichenketten, doch entscheidend ist die Codierungsregel innerhalb der Zeichenkette. Eine SUPI kann eine IMSI- oder NAI-Darstellung enthalten, während eine GPSI eine MSISDN oder einen External Identifier enthalten kann. Anders gesagt: Die Definition als Zeichenkette bedeutet nicht, dass jede beliebige Zeichenkette gültig ist.

5G-netzbezogene Typen bauen auf diesen Basiskennungen auf, um Sitzungs- und Standortinformationen darzustellen. PduSessionId identifiziert eine PDU Session. MCC und MNC bilden Bestandteile einer PLMN-Identität. TAC bezeichnet einen Tracking Area Code, während NrCellId und EutraCellId jeweils NR- beziehungsweise E-UTRA-Zellen identifizieren.

Strukturierte Objekte kombinieren diese Basisparameter anschließend zu höherwertigen Datenmodellen. S-NSSAI verwendet eine SST und eine optionale SD zur Darstellung eines Network Slices. TAI kombiniert eine PLMN ID und einen TAC. NCGI kombiniert eine PLMN ID mit einer NR Cell ID, um eine NR-Zelle zu identifizieren, während ECGI eine ähnliche Funktion für E-UTRA übernimmt.

UserLocation ist eine noch höher angesiedelte Abstraktion. Abhängig vom Zugriffstyp kann sie eine NR Location, eine E-UTRA Location oder eine Non-3GPP Access Location enthalten. Eine NR Location kann wiederum TAI, NCGI, einen Standort-Zeitstempel und geografische Informationen enthalten.

Dies zeigt den modularen Aufbau der SBI-Datenmodelle. Grundelemente wie MCC, MNC, TAC und Cell ID werden zunächst standardisiert und anschließend zu höherwertigen Objekten wie PLMN ID, TAI, NCGI und UserLocation zusammengesetzt. APIs können diese Objekte direkt wiederverwenden, statt für jeden Dienst einen vollständigen Satz von Standortparametern neu zu definieren.

5GC-SBI-Datenmodell, das zeigt, wie SUPI, GPSI, PLMN ID, TAI, S-NSSAI, NCGI und UserLocation aus Basisfeldern zu strukturierten 5G-Netzobjekten aufgebaut werden
5GC-Netzdaten folgen einem hierarchischen Modell: Zunächst werden grundlegende Kennungen und Netzcodes standardisiert und anschließend zu komplexeren Objekten wie TAI, NCGI, S-NSSAI und UserLocation zusammengesetzt.

Warum müssen auch QoS-, Abrechnungs- und Trace-Daten standardisiert werden?

SBI-Verkehr transportiert weit mehr als Teilnehmeridentitäten und Netzwerkstandorte. Auch QoS-Richtlinien, Nutzungsinformationen und Netzwerk-Trace-Daten werden zwischen mehreren NFs ausgetauscht, weshalb auch diese Werte einheitliche Datendefinitionen benötigen.

Unter den QoS-Parametern identifiziert QFI einen QoS Flow, 5QI steht für den 5G QoS Identifier, BitRate stellt eine Datenrate mit Wert und Einheit dar, Packet Delay Budget beschreibt ein Verzögerungsbudget, und Packet Error Rate sowie Packet Loss Rate beschreiben die Übertragungsqualität.

QoS-Richtlinien verwenden ebenfalls zahlreiche Enumerationstypen. PreemptionCapability gibt an, ob ein Dienst anderweitig zugewiesene Ressourcen verdrängen darf. PreemptionVulnerability gibt an, ob vorhandene Ressourcen durch einen höher priorisierten Dienst entzogen werden können. QosResourceType unterscheidet Werte wie NON_GBR, NON_CRITICAL_GBR und CRITICAL_GBR.

Diese Basisfelder werden anschließend zu strukturierten Objekten wie ARP, AMBR, Dynamic 5QI und Non-Dynamic 5QI zusammengeführt. Dadurch können SMF, PCF und andere beteiligte Netzwerkfunktionen beim Austausch von Konzepten wie Priorität, Bitrate, Verzögerung und Preemption-Verhalten dieselbe Darstellung verwenden.

Abrechnungsdaten folgen demselben Konstruktionsprinzip. ChargingId, RatingGroup und ServiceId sind relativ einfache Datentypen, während QoSFlowUsageReport QFI, Start- und Endzeitstempel der Erfassung sowie Uplink- und Downlink-Datenvolumen enthalten kann. VolumeTimedReport kann die Nutzung einer PDU Session über ein festgelegtes Zeitintervall darstellen.

Trace-bezogene Typen standardisieren Informationen zur Netzverfolgung. TraceDepth verwendet Enumerationswerte für unterschiedliche Trace-Tiefen, während TraceData Parameter wie Trace Reference, Trace Depth und NE Type zusammenfasst. Dadurch wird verhindert, dass jede NF einen eigenen inkompatiblen Satz von Trace-Feldern definiert.

Diese Beispiele zeigen, dass gemeinsame Datentypen weit mehr leisten als nur „einige JSON-Felder“ zu standardisieren. Sie standardisieren, wie verschiedene Core-Netz-Dienste dieselben Geschäfts- und Netzkonzepte verstehen. Müssen QoS, Standort, Abrechnungsinformationen oder Teilnehmerkennungen zwischen mehreren NFs ausgetauscht werden, benötigen sie zunächst ein konsistentes Datenmodell.

Wie lassen sich Datentypen bei der praktischen Fehlersuche einsetzen?

Ein häufiger technischer Fehler besteht darin, bei einer JSON-Nachricht nur zu prüfen, ob ein Feld vorhanden ist, ohne den Datentyp und die zugehörigen Einschränkungen zu kontrollieren. Effektiver ist es, HTTP-Schicht und Datenmodell gemeinsam zu untersuchen.

Identifizieren Sie zunächst den aufgerufenen Dienst und die Ressourcen-URI. Suchen Sie danach das Zielfeld im Request- oder Response-Body. Sobald das Feld gefunden ist, sollten Sie nicht beim Wert stehen bleiben. Prüfen Sie, welchen Datentyp es referenziert, ob es obligatorisch oder optional ist, welche Cardinality gilt, ob es sich um eine Enumeration handelt und ob Format- oder Pattern-Einschränkungen bestehen.

Ein IPv4-Feld kann für einen Menschen wie eine IP-Adresse aussehen, ist aber dennoch ungültig, wenn es nicht dem definierten Format entspricht. Ebenso kann ein PduSessionType-Wert sprachlich verständlich sein; gehört er jedoch nicht zu den festgelegten Enumerationswerten, entspricht er nicht der API-Definition.

Strukturierte Daten sollten rekursiv aufgelöst werden. Wenn UserLocation vorkommt, ist zu prüfen, ob das Objekt NR-, E-UTRA- oder Non-3GPP-Standortinformationen enthält. Bei TAI sind PLMN ID und TAC zu untersuchen. Bei S-NSSAI sind SST und die optionale SD zu prüfen. Nur durch das schrittweise Verfolgen der Typreferenzen lässt sich feststellen, ob das JSON-Objekt dem API-Modell entspricht.

Wenn ein Server einen Request ablehnt, sollte auch ProblemDetails genau betrachtet werden. Zusätzlich zum HTTP-Statuscode kann es Informationen in detail, cause und invalidParams liefern. Sind diese Felder vorhanden, kann die Fehlersuche direkt beim konkreten Parameter beginnen, der gegen die API-Vorgaben verstoßen hat, statt bei einer allgemeinen HTTP-4xx-Antwort stehen zu bleiben.

5GC-Ingenieur bei der Fehlersuche in SBI-JSON-Nachrichten durch Prüfung von API-Ressourcen, Feldtypen, Enumerationswerten, Cardinality, Formatbeschränkungen und ProblemDetails
Bei der Fehlersuche an einer SBI-Schnittstelle reicht es nicht aus, nur zu prüfen, ob ein JSON-Feld vorhanden ist. Ingenieure sollten außerdem Datentypen, Enumerationswerte, Pflichtbedingungen, Cardinality und Formatbeschränkungen validieren.

Warum ist ein Datenmodell-Denken nützlicher als das Auswendiglernen von Parametertabellen?

Die Zahl der gemeinsamen SBI-Datentypen im 5GC ist groß genug, dass das Auswendiglernen jedes Feldes, jedes regulären Ausdrucks und jedes Wertebereichs schnell ineffizient wird. Sinnvoller ist ein Datenmodell-Denken: Einfache Typen definieren die kleinsten Dateneinheiten, Enumerationen begrenzen gültige Zustände, und strukturierte Typen kombinieren diese Einheiten zu Objekten, die von 5GC-Diensten direkt genutzt werden können.

In diesem Rahmen sind SUPI, MCC, TAC und QFI keine isolierten Parameter mehr. Sie werden zu Bausteinen für Teilnehmer-, Standort-, Sitzungs-, QoS-, Abrechnungs- und Trace-Modelle. Dass verschiedene NFs Dienste über SBI konsistent aufrufen können, liegt unter anderem daran, dass diese gemeinsamen Typen stabile und wiederverwendbare Datensemantik bereitstellen.

Beim Lesen einer unbekannten 5GC-API lautet die nützlichste erste Frage daher nicht „Wie viele Felder enthält diese Nachricht?“. Stattdessen sollte geklärt werden, welche Typen diese Felder referenzieren, wie die Objekte verschachtelt sind und welche Einschränkungen bestimmen, ob das entstehende JSON gültig ist. Sobald dieses Vorgehen vertraut ist, kann selbst ein bisher unbekannter SBI-Dienst durch schrittweises Nachverfolgen der OpenAPI- und Datentypdefinitionen analysiert werden, ohne eine völlig neue Parametertabelle auswendig zu lernen.

FAQ

Welche 3GPP-Spezifikation definiert die gemeinsamen SBI-Datentypen?

Sie sind hauptsächlich in TS 29.571, 5G System; Common Data Types for Service Based Interfaces, definiert. Diese Spezifikation beschreibt wiederverwendbare Datenstrukturen, die von SBI-Diensten gemeinsam genutzt werden. NF-spezifische Dienste und Datentypen sind in den entsprechenden 29.5xx-Spezifikationen definiert, beispielsweise TS 29.502 für SMF-Dienste und TS 29.503 für UDM-Dienste.

Wie erscheint die OpenAPI-Eigenschaft nullable in einer tatsächlichen JSON-Nachricht?

Ein als nullable definiertes Feld, typischerweise über einen Typ mit Rm-Suffix, kann im JSON-Body ausdrücklich den Wert null enthalten, um anzuzeigen, dass derzeit kein gültiger Wert zugewiesen ist. Das unterscheidet sich davon, dass das Feld vollständig fehlt. Ein fehlendes Feld kann bedeuten, dass der Parameter nicht anwendbar ist oder nicht übermittelt wurde, während ein ausdrücklich gesetztes null eine konkrete semantische Bedeutung haben kann, etwa das Löschen eines zuvor konfigurierten Werts.

Können sich gemeinsame SBI-Datentypen zwischen Herstellern unterscheiden?

Die Definitionen sind auf Spezifikationsebene standardisiert, dennoch können in realen Produkten Implementierungsunterschiede auftreten. Manche Hersteller implementieren möglicherweise nur einen Teil der optionalen Felder, bestimmte APIs können herstellerspezifische Erweiterungen enthalten, und die Strenge der Enumerationsvalidierung kann variieren. Solche Unterschiede gehören zu den typischen Prüfpunkten bei Interoperabilitätstests.

Wie lässt sich schnell erkennen, ob ein Feld einen gemeinsamen oder einen NF-spezifischen Typ verwendet?

Am direktesten ist es, den $ref-Pfad in der OpenAPI-Definition zu prüfen. Verweist die Referenz auf ein gemeinsames Schema aus TS 29.571, handelt es sich normalerweise um einen gemeinsam genutzten SBI-Datentyp. Verweist sie auf ein Schema innerhalb der aktuellen Servicespezifikation, ist der Typ in der Regel NF-spezifisch. Vertrautheit mit häufig wiederverwendeten Typen wie SUPI, TAI, S-NSSAI und ProblemDetails erleichtert ihre Erkennung auch bei der Paketanalyse.

Was ist in einem Paketmitschnitt der Unterschied zwischen einem Rm-Typ und einem regulären Typ?

Ist der Wert nicht null, ist die JSON-Darstellung praktisch identisch, da beide Typen dasselbe zugrunde liegende Format verwenden. Der Unterschied besteht auf Ebene des OpenAPI-Modells: Ein Rm-Typ erlaubt dem Feld den Wert null. Enthält ein erfasstes Feld ausdrücklich null, muss es eine nullable-Definition verwenden. Enthält es einen normalen gültigen Wert, reicht dieser Wert allein nicht aus, um festzustellen, ob das Schema den regulären Typ oder den entsprechenden Rm-Typ referenziert.

Empfohlene Produkte
Katalog
Kundenservice Telefon
We use cookie to improve your online experience. By continuing to browse this website, you agree to our use of cookie.

Cookies

This Cookie Policy explains how we use cookies and similar technologies when you access or use our website and related services. Please read this Policy together with our Terms and Conditions and Privacy Policy so that you understand how we collect, use, and protect information.

By continuing to access or use our Services, you acknowledge that cookies and similar technologies may be used as described in this Policy, subject to applicable law and your available choices.

Updates to This Cookie Policy

We may revise this Cookie Policy from time to time to reflect changes in legal requirements, technology, or our business practices. When we make updates, the revised version will be posted on this page and will become effective from the date of publication unless otherwise required by law.

Where required, we will provide additional notice or request your consent before applying material changes that affect your rights or choices.

What Are Cookies?

Cookies are small text files placed on your device when you visit a website or interact with certain online content. They help websites recognize your browser or device, remember your preferences, support essential functionality, and improve the overall user experience.

In this Cookie Policy, the term “cookies” also includes similar technologies such as pixels, tags, web beacons, and other tracking tools that perform comparable functions.

Why We Use Cookies

We use cookies to help our website function properly, remember user preferences, enhance website performance, understand how visitors interact with our pages, and support security, analytics, and marketing activities where permitted by law.

We use cookies to keep our website functional, secure, efficient, and more relevant to your browsing experience.

Categories of Cookies We Use

Strictly Necessary Cookies

These cookies are essential for the operation of the website and cannot be disabled in our systems where they are required to provide the service you request. They are typically set in response to actions such as setting privacy preferences, signing in, or submitting forms.

Without these cookies, certain parts of the website may not function correctly.

Functional Cookies

Functional cookies enable enhanced features and personalization, such as remembering your preferences, language settings, or previously selected options. These cookies may be set by us or by third-party providers whose services are integrated into our website.

If you disable these cookies, some services or features may not work as intended.

Performance and Analytics Cookies

These cookies help us understand how visitors use our website by collecting information such as traffic sources, page visits, navigation behavior, and general interaction patterns. In many cases, this information is aggregated and does not directly identify individual users.

We use this information to improve website performance, usability, and content relevance.

Targeting and Advertising Cookies

These cookies may be placed by our advertising or marketing partners to help deliver more relevant ads and measure the effectiveness of campaigns. They may use information about your browsing activity across different websites and services to build a profile of your interests.

These cookies generally do not store directly identifying personal information, but they may identify your browser or device.

First-Party and Third-Party Cookies

Some cookies are set directly by our website and are referred to as first-party cookies. Other cookies are set by third-party services, such as analytics providers, embedded content providers, or advertising partners, and are referred to as third-party cookies.

Third-party providers may use their own cookies in accordance with their own privacy and cookie policies.

Information Collected Through Cookies

Depending on the type of cookie used, the information collected may include browser type, device type, IP address, referring website, pages viewed, time spent on pages, clickstream behavior, and general usage patterns.

This information helps us maintain the website, improve performance, enhance security, and provide a better user experience.

Your Cookie Choices

You can control or disable cookies through your browser settings and, where available, through our cookie consent or preference management tools. Depending on your location, you may also have the right to accept or reject certain categories of cookies, especially those used for analytics, personalization, or advertising purposes.

Please note that blocking or deleting certain cookies may affect the availability, functionality, or performance of some parts of the website.

Restricting cookies may limit certain features and reduce the quality of your experience on the website.

Cookies in Mobile Applications

Where our mobile applications use cookie-like technologies, they are generally limited to those required for core functionality, security, and service delivery. Disabling these essential technologies may affect the normal operation of the application.

We do not use essential mobile application cookies to store unnecessary personal information.

How to Manage Cookies

Most web browsers allow you to manage cookies through browser settings. You can usually choose to block, delete, or receive alerts before cookies are stored. Because browser controls vary, please refer to your browser provider’s support documentation for details on how to manage cookie settings.

Contact Us

If you have any questions about this Cookie Policy or our use of cookies and similar technologies, please contact us at support@becke.cc .