Skip to content

Edge port

Edge port product block.

Edge port sets the boundary between the GÉANT network and an external entity. This external entity could also be a different technological domain, still managed by GÉANT. In other words, an Edge port determines where the network ends.

EncapsulationType

Bases: strEnum

Types of encapsulation for edge ports.

Source code in gso/products/product_blocks/edge_port.py
class EncapsulationType(strEnum):
    """Types of encapsulation for edge ports."""

    DOT1Q = "dot1q"
    """Dot1Q supports multiple services for one customer or services for multiple customers."""
    QINQ = "qinq"
    """QinQ expands VLAN space by double-tagging frames."""
    NULL = "null"
    """Null supports a single service on the port."""

DOT1Q = 'dot1q' class-attribute instance-attribute

Dot1Q supports multiple services for one customer or services for multiple customers.

QINQ = 'qinq' class-attribute instance-attribute

QinQ expands VLAN space by double-tagging frames.

NULL = 'null' class-attribute instance-attribute

Null supports a single service on the port.

EdgePortType

Bases: strEnum

Types of edge ports.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortType(strEnum):
    """Types of edge ports."""

    CUSTOMER = "CUSTOMER"
    """Customer Edge Port."""
    INFRASTRUCTURE = "INFRASTRUCTURE"
    """Infrastructure Edge Port."""
    PRIVATE = "PRIVATE"
    """Private Edge Port."""
    PUBLIC = "PUBLIC"
    """Public Edge Port."""
    RE_INTERCONNECT = "RE_INTERCONNECT"
    """R&E Interconnect Edge Port."""

CUSTOMER = 'CUSTOMER' class-attribute instance-attribute

Customer Edge Port.

INFRASTRUCTURE = 'INFRASTRUCTURE' class-attribute instance-attribute

Infrastructure Edge Port.

PRIVATE = 'PRIVATE' class-attribute instance-attribute

Private Edge Port.

PUBLIC = 'PUBLIC' class-attribute instance-attribute

Public Edge Port.

RE_INTERCONNECT = 'RE_INTERCONNECT' class-attribute instance-attribute

R&E Interconnect Edge Port.

EdgePortAEMemberBlockInactive

Bases: ProductBlockModel

An inactive Edge Port AE interface.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortAEMemberBlockInactive(
    ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="EdgePortAEMemberBlock"
):
    """An inactive Edge Port AE interface."""

    interface_name: str | None = None
    interface_description: str | None = None

EdgePortAEMemberBlockProvisioning

Bases: EdgePortAEMemberBlockInactive

A provisional Edge Port AE interface.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortAEMemberBlockProvisioning(EdgePortAEMemberBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """A provisional Edge Port AE interface."""

    interface_name: str
    interface_description: str | None = None

EdgePortAEMemberBlock

Bases: EdgePortAEMemberBlockProvisioning

An Edge Port AE interface.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortAEMemberBlock(EdgePortAEMemberBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """An Edge Port AE interface."""

    interface_name: str
    interface_description: str | None = None

EdgePortBlockInactive

Bases: ProductBlockModel

An edge port that's currently inactive. See EdgePortBlock.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortBlockInactive(
    ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="EdgePortBlock"
):
    """An edge port that's currently inactive. See ``EdgePortBlock``."""

    node: RouterBlockInactive | None = None
    edge_port_name: str | None = None
    edge_port_description: str | None = None
    enable_lacp: bool | None = None
    encapsulation: EncapsulationType = EncapsulationType.DOT1Q
    mac_address: str | None = None
    member_speed: PhysicalPortCapacity | None = None
    minimum_links: int | None = None
    edge_port_type: EdgePortType | None = None
    ignore_if_down: bool = False
    ga_id: str | None = None
    edge_port_ae_members: LAGMemberList[EdgePortAEMemberBlockInactive]
    custom_service_name: str | None = None

EdgePortBlockProvisioning

Bases: EdgePortBlockInactive

An edge port that's being provisioned. See EdgePortBlock.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortBlockProvisioning(EdgePortBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
    """An edge port that's being provisioned. See ``EdgePortBlock``."""

    node: RouterBlockProvisioning
    edge_port_name: str
    edge_port_description: str | None = None
    enable_lacp: bool
    encapsulation: EncapsulationType = EncapsulationType.DOT1Q
    mac_address: str | None = None
    member_speed: PhysicalPortCapacity
    minimum_links: int | None = None
    edge_port_type: EdgePortType
    ignore_if_down: bool = False
    ga_id: str | None = None
    edge_port_ae_members: LAGMemberList[EdgePortAEMemberBlockProvisioning]  # type: ignore[assignment]
    custom_service_name: str | None = None

EdgePortBlock

Bases: EdgePortBlockProvisioning

An edge port that's currently deployed in the network.

Attributes:

Name Type Description
node RouterBlock

The router that this Edge Port is connected to.

edge_port_name str

The name of the edge port, in our case, corresponds to the name of the LAG interface.

edge_port_description str | None

A description of the edge port.

enable_lacp bool

Indicates whether LACP is enabled for this edge port.

encapsulation EncapsulationType

The type of encapsulation used on this edge port, by default DOT1Q.

mac_address str | None

The MAC address assigned to this edge port, if applicable.

member_speed PhysicalPortCapacity

The speed capacity of each member in the physical port.

minimum_links int | None

The minimum number of links required for this edge port.

edge_port_type EdgePortType

The type of edge port (e.g., customer, private, public).

ignore_if_down bool

If set to True, the edge port will be ignored if it is down.

ga_id str | None

The GEANT GA ID associated with this edge port, if any.

edge_port_ae_members LAGMemberList[EdgePortAEMemberBlock]

A list of LAG members associated with this edge port.

custom_service_name str | None

The name of the custom service, if any.

Source code in gso/products/product_blocks/edge_port.py
class EdgePortBlock(EdgePortBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
    """An edge port that's currently deployed in the network.

    Attributes:
        node: The router that this Edge Port is connected to.
        edge_port_name: The name of the edge port, in our case, corresponds to the name of the LAG interface.
        edge_port_description: A description of the edge port.
        enable_lacp: Indicates whether LACP is enabled for this edge port.
        encapsulation: The type of encapsulation used on this edge port, by default DOT1Q.
        mac_address: The MAC address assigned to this edge port, if applicable.
        member_speed: The speed capacity of each member in the physical port.
        minimum_links: The minimum number of links required for this edge port.
        edge_port_type: The type of edge port (e.g., customer, private, public).
        ignore_if_down: If set to True, the edge port will be ignored if it is down.
        ga_id: The GEANT GA ID associated with this edge port, if any.
        edge_port_ae_members: A list of LAG members associated with this edge port.
        custom_service_name: The name of the custom service, if any.
    """

    node: RouterBlock
    edge_port_name: str
    edge_port_description: str | None = None
    enable_lacp: bool
    encapsulation: EncapsulationType = EncapsulationType.DOT1Q
    mac_address: str | None = None
    member_speed: PhysicalPortCapacity
    minimum_links: int | None = None
    edge_port_type: EdgePortType
    ignore_if_down: bool = False
    ga_id: str | None = None
    edge_port_ae_members: LAGMemberList[EdgePortAEMemberBlock]  # type: ignore[assignment]
    custom_service_name: str | None = None