EGP - Exterior Gateway Protocol

What is EGP?

EGP (Exterior Gateway Protocol) is a routing protocol used to exchange routing information between different autonomous systems (AS) on the internet. It was one of the earliest protocols designed for inter-domain routing and was formally defined in RFC 904 (1984).

How does EGP work?

EGP operates by: * Establishing neighbor relationships between routers in different ASes. * Exchanging reachability information (i.e., which networks are reachable). * Using a polling mechanism to request updates from neighbors. * Sending update messages to share routing information.

What are the main message types in EGP?

  • Neighbor Acquisition - Establishes or ends neighbor relationships.

  • Neighbor Reachability - Checks if neighbors are alive.

  • Poll - Requests routing updates.

  • Routing Update - Shares reachability information.

  • Error - Reports issues in communication.

What are the advantages of EGP?

  • Simplicity: Easy to implement and understand.

  • Stability: Routing tables change infrequently.

  • Historical significance: It laid the foundation for modern inter-domain routing.

What are the limitations of EGP?

  • Limited to tree-like topologies (no support for loops or multipath).

  • No path metrics: Cannot determine the best route.

  • Not scalable: Designed for a centrally controlled internet.

  • Obsolete: Replaced by BGP (Border Gateway Protocol) due to its limitations.

Which OSI Layer does EGP operate at?

  • EGP operates at the Network Layer (Layer 3) of the OSI model.

  • It is responsible for exchanging routing information between different autonomous systems.

  • It enables packet forwarding decisions based on routing tables.

  • In this section, you are going to learn

  • Terminology

  • Version Info

Version & RFC Details

EGP Version

RFC Version

Year

Core Idea / Contribution

EGP Version 1

RFC 827

1982

Introduced the concept of EGP as a protocol for exchanging routing information between autonomous systems (ASes) on the ARPANET.

EGP Version 2

RFC 888

1983

Provided a deployment and implementation timeline for EGP across the ARPANET.

RFC 904

1984

Delivered the formal specification of EGP, making it a standard protocol for inter-AS routing.

  • Setup

  • Setup

EGP Hello (Neighbor Acquisition) Packet

S.No

Protocol Packets

Description

Size(bytes)

1

EGP Hello (Neighbor Acquisition)

Initiates or maintains a neighbor relationship.

~1220

Version

EGP version number

1

Type

Packet type (Hello = 1)

1

Code

Subtype or code (usually 0)

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

Hello Interval

Time between Hello messages

2

Poll Interval

Time between Poll messages

2

EGP Hello-Ack Packet

S.No

Protocol Packets

Description

Size(bytes)

2

EGP Hello-Ack

Acknowledges receipt of a Hello packet.

~1220

Version

EGP version number

1

Type

Packet type (I-H-U = 2)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP Poll Packet

S.No

Protocol Packets

Description

Size(bytes)

3

EGP Poll

Requests routing information from a neighbor.

~1224

Version

EGP version number

1

Type

Packet type (Poll = 3)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

Source Network

Network requesting update

4

EGP Update Packet

S.No

Protocol Packets

Description

Size(bytes)

4

EGP Update

Provides reachability information in response to a Poll.

Variable (up to 8192)

Version

EGP version number

1

Type

Packet type (Update = 4)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

Number of Gateways

Count of gateway entries

1

Gateway Entries

List of gateways and reachable networks

Variable

EGP Error Packet

S.No

Protocol Packets

Description

Size(bytes)

5

EGP Error

Reports errors in EGP communication.

~1240

Version

EGP version number

1

Type

Packet type (Error = 8)

1

Code

Error code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

Error Info

Offending packet or reason

Variable

EGP Request Packet

S.No

Protocol Packets

Description

Size(bytes)

6

Request

Starts neighbor acquisition (session initiation).

10

Version

EGP version number

1

Type

Packet type (Request = 10)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP Confirm Packet

S.No

Protocol Packets

Description

Size(bytes)

7

Confirm

Confirms neighbor acquisition.

10

Version

EGP version number

1

Type

Packet type (Confirm = 11)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP Refuse Packet

S.No

Protocol Packets

Description

Size(bytes)

8

Refuse

Denies neighbor acquisition (e.g., due to resource limits).

10

Version

EGP version number

1

Type

Packet type (Refuse = 12)

1

Code

Reason code for refusal

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP Cease Packet

S.No

Protocol Packets

Description

Size(bytes)

9

Cease

Requests termination of the EGP session.

10

Version

EGP version number

1

Type

Packet type (Cease = 13)

1

Code

Reason for termination

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP Cease-Ack Packet

S.No

Protocol Packets

Description

Size(bytes)

10

Cease-Ack

Acknowledges the Cease request.

10

Version

EGP version number

1

Type

Packet type (Cease-Ack = 14)

1

Code

Subtype or code

1

Status

Status of the sender

1

Checksum

Error-checking value

2

Autonomous System

Sender’s AS number

2

Sequence Number

Packet sequence number

2

EGP - Use Cases

S.no

Use Case

Description

1

Inter-AS Routing

EGP was used to exchange routing information between different autonomous systems (ASes) on the early Internet.

2

ARPANET Gateway Communication

Enabled communication between core ARPANET gateways and external networks.

3

Reachability Advertisement

Allowed routers to advertise which networks were reachable from their AS.

4

Policy Enforcement

Provided basic support for routing policies by controlling which routes were advertised.

5

Network Monitoring

Helped monitor the status and reachability of neighboring routers.

6

Transition to BGP

Served as a stepping stone for the development and deployment of BGP.

7

Simplified Topologies

Worked well in tree-like topologies where routing loops were not a concern.

EGP - Basic Features

S.no

Features

Description

1

Inter-AS Communication

Facilitates routing information exchange between different autonomous systems.

2

Reachability-Based Routing

Determines whether a network is reachable, without calculating optimal paths.

3

Polling Mechanism

Uses Poll and Update messages to request and share routing data.

4

Finite-State Machine Model

Operates based on defined states for neighbor acquisition and reachability.

5

Simple Packet Structure

Uses a limited set of packet types for control and data exchange.

6

Tree-Like Topology Support

Designed for hierarchical, loop-free network topologies.

7

Limited Scalability

Suitable for small-scale networks; not ideal for large, complex topologies.

Inter-AS Communication - Testcases

Inter-AS Communication - Test Cases

#

Test Case

Description

Expected Result

1

Establish EGP session between ASes

Two ASes initiate EGP session

Session established

2

EGP neighbor reachability

Neighbor router is reachable

Hello/Update messages exchanged

3

EGP neighbor unreachable

Neighbor router is down

Session not established

4

EGP Hello message exchange

Hello messages sent/received

Keepalive maintained

5

EGP Update message exchange

Routing information shared

Routes learned

6

EGP Poll message sent

Request for routing info

Update message received

7

EGP Update with valid routes

Valid prefixes advertised

Routes added to routing table

8

EGP Update with invalid routes

Malformed prefixes

Update rejected

9

EGP Update with unreachable routes

Metric = unreachable

Route ignored

10

EGP session timeout

No Hello received

Session terminated

11

EGP session restart

After timeout

Session re-established

12

EGP with valid AS number

Correct AS number used

Session accepted

13

EGP with invalid AS number

AS number mismatch

Session rejected

14

EGP with duplicate AS number

Same AS on both ends

Session rejected

15

EGP with loopback interface

Source IP is loopback

Session rejected

16

EGP with valid interface

Physical interface used

Session established

17

EGP with TTL = 1

TTL expired

Packet dropped

18

EGP with TTL = 255

Valid TTL

Packet accepted

19

EGP with valid IP prefix

Proper format

Route accepted

20

EGP with invalid IP prefix

Invalid format

Route rejected

21

EGP with classful route

Class A/B/C

Route accepted

22

EGP with classless route

CIDR format

Route rejected (EGP doesnt support CIDR)

23

EGP with route to private IP

10.0.0.0/8

Route accepted

24

EGP with route to public IP

8.8.8.0/24

Route accepted

25

EGP with route to loopback

127.0.0.0/8

Route ignored

26

EGP with route to multicast

224.0.0.0/4

Route ignored

27

EGP with route to broadcast

255.255.255.255

Route ignored

28

EGP with default route

0.0.0.0

Route accepted

29

EGP with duplicate routes

Same prefix repeated

Last route used

30

EGP with inconsistent metrics

Same prefix, different metrics

Lowest metric used

31

EGP with valid checksum

Packet integrity verified

Packet accepted

32

EGP with invalid checksum

Corrupted packet

Packet discarded

33

EGP with valid authentication

If supported by implementation

Session accepted

34

EGP with invalid authentication

Wrong key

Session rejected

35

EGP with valid port

Port 179 (if implemented over TCP)

Packet accepted

36

EGP with invalid port

Port ? 179

Packet ignored

37

EGP with valid neighbor config

Correct IP and AS

Session established

38

EGP with misconfigured neighbor

Wrong IP or AS

Session not established

39

EGP with route filtering

Apply prefix filter

Only allowed routes accepted

40

EGP with no route filtering

All routes accepted

Full table received

41

EGP with route aggregation

Summarized routes

Aggregated route accepted

42

EGP with route flapping

Route changes frequently

Route stability affected

43

EGP with stable routes

No changes

Routing table remains stable

44

EGP with high latency link

Delayed Hello/Update

Session may timeout

45

EGP with low latency link

Fast Hello/Update

Session stable

46

EGP with route to same AS

Internal route advertised

Route ignored

47

EGP with route to external AS

Valid external prefix

Route accepted

48

EGP with max prefix limit

Exceeds configured limit

Excess routes dropped

49

EGP with minimal prefix set

Few routes advertised

All accepted

50

EGP with policy-based routing

Routes filtered by policy

Only matching routes accepted

Reachability-Based Routing - Testcases

Reachability-Based Routing - Test Cases

#

Test Case

Description

Expected Result

1

Reachable neighbor AS

Neighbor responds to Hello

Routes exchanged

2

Unreachable neighbor AS

No Hello response

No routes exchanged

3

Poll message sent

Request for reachability info

Update message received

4

Poll message not acknowledged

No response from neighbor

Session timeout

5

Update with reachable network

Valid network advertised

Route added

6

Update with unreachable network

Network marked unreachable

Route removed

7

Update with invalid network

Malformed prefix

Route ignored

8

Update with valid metric

Metric indicates reachability

Route accepted

9

Update with invalid metric

Metric out of range

Route ignored

10

Update with loopback IP

127.0.0.0/8

Route ignored

11

Update with multicast IP

224.0.0.0/4

Route ignored

12

Update with broadcast IP

255.255.255.255

Route ignored

13

Update with private IP

10.0.0.0/8

Route accepted

14

Update with public IP

8.8.8.0/24

Route accepted

15

Update with default route

0.0.0.0

Route accepted

16

Update with duplicate routes

Same prefix repeated

Last route used

17

Update with inconsistent metrics

Same prefix, different metrics

Lowest metric used

18

Update with valid checksum

Packet integrity verified

Packet accepted

19

Update with invalid checksum

Corrupted packet

Packet discarded

20

Update with TTL = 255

Valid TTL

Packet accepted

21

Update with TTL = 1

TTL expired

Packet dropped

22

Update with valid AS number

Correct AS used

Route accepted

23

Update with invalid AS number

AS mismatch

Route rejected

24

Update with valid source IP

Known router

Packet accepted

25

Update with spoofed source IP

Fake IP

Packet ignored

26

Update with valid port

EGP port used

Packet accepted

27

Update with invalid port

Wrong port

Packet ignored

28

Update with valid version

EGP version supported

Packet processed

29

Update with invalid version

Unsupported version

Packet ignored

30

Update with reachable prefix

Prefix is routable

Route accepted

31

Update with unreachable prefix

Prefix not routable

Route ignored

32

Update with stable reachability

No change in status

Route retained

33

Update with flapping reachability

Frequent status change

Route stability affected

34

Update with long reachability timeout

Delayed Hello

Session reset

35

Update with short reachability timeout

Fast Hello loss

Session terminated

36

Update with valid neighbor config

Correct IP and AS

Reachability confirmed

37

Update with misconfigured neighbor

Wrong IP or AS

Reachability failed

38

Update with route to same AS

Internal route

Route ignored

39

Update with route to external AS

Valid external prefix

Route accepted

40

Update with route filtering

Prefix filter applied

Only allowed routes accepted

41

Update with no route filtering

All routes accepted

Full table received

42

Update with route aggregation

Summarized routes

Aggregated route accepted

43

Update with minimal prefix set

Few routes advertised

All accepted

44

Update with max prefix limit

Exceeds configured limit

Excess routes dropped

45

Update with policy-based routing

Routes filtered by policy

Only matching routes accepted

46

Update with valid Hello interval

Hello received on time

Session maintained

47

Update with missed Hello

Hello not received

Session dropped

48

Update with valid Poll interval

Poll sent periodically

Update received

49

Update with missed Poll response

No update received

Route marked unreachable

50

Update with consistent reachability

Stable neighbor

Route remains in table

Polling Mechanism - Testcases

Polling Mechanism - Test Cases

#

Test Case

Description

Expected Result

1

Send Poll message

Initiate reachability check

Neighbor responds with Update

2

No Poll message sent

Polling disabled

No Update received

3

Poll interval = 30 sec

Standard polling frequency

Updates received every 30 sec

4

Poll interval = 60 sec

Custom polling frequency

Updates received every 60 sec

5

Poll interval too short

Poll every 1 sec

May cause congestion

6

Poll interval too long

Poll every 5 min

Updates delayed

7

Poll with valid neighbor

Neighbor reachable

Update received

8

Poll with unreachable neighbor

No response

Session timeout

9

Poll with valid AS number

Correct AS configured

Poll accepted

10

Poll with invalid AS number

AS mismatch

Poll ignored

11

Poll with valid IP

Correct neighbor IP

Poll accepted

12

Poll with invalid IP

Wrong neighbor IP

Poll ignored

13

Poll with valid TTL

TTL = 255

Poll accepted

14

Poll with TTL = 1

TTL expired

Poll dropped

15

Poll with valid checksum

Packet integrity verified

Poll accepted

16

Poll with invalid checksum

Corrupted packet

Poll discarded

17

Poll with valid version

Supported EGP version

Poll processed

18

Poll with invalid version

Unsupported version

Poll ignored

19

Poll with valid port

EGP port used

Poll accepted

20

Poll with invalid port

Wrong port

Poll ignored

21

Poll with authentication

If supported

Poll accepted

22

Poll with invalid authentication

Wrong key

Poll rejected

23

Poll with valid sequence number

In-order sequence

Poll accepted

24

Poll with duplicate sequence number

Replayed message

Poll ignored

25

Poll with valid header

Proper format

Poll accepted

26

Poll with malformed header

Incorrect format

Poll rejected

27

Poll with valid neighbor state

Neighbor in idle state

Poll initiates session

28

Poll during active session

Session ongoing

Poll triggers update

29

Poll with route filtering

Prefix filter applied

Only allowed routes returned

30

Poll with no route filtering

All routes returned

Full table received

31

Poll with route aggregation

Summarized routes

Aggregated update received

32

Poll with minimal prefix set

Few routes advertised

All accepted

33

Poll with max prefix limit

Exceeds configured limit

Excess routes dropped

34

Poll with valid Hello exchange

Hello received before poll

Poll accepted

35

Poll without Hello exchange

No Hello received

Poll ignored

36

Poll with valid response time

Update received promptly

Session stable

37

Poll with delayed response

Update delayed

Session may timeout

38

Poll with route to private IP

10.0.0.0/8

Route accepted

39

Poll with route to public IP

8.8.8.0/24

Route accepted

40

Poll with route to loopback

127.0.0.0/8

Route ignored

41

Poll with route to multicast

224.0.0.0/4

Route ignored

42

Poll with route to broadcast

255.255.255.255

Route ignored

43

Poll with default route

0.0.0.0

Route accepted

44

Poll with duplicate routes

Same prefix repeated

Last route used

45

Poll with inconsistent metrics

Same prefix, different metrics

Lowest metric used

46

Poll with valid neighbor config

Correct IP and AS

Poll accepted

47

Poll with misconfigured neighbor

Wrong IP or AS

Poll ignored

48

Poll with stable neighbor

No changes in reachability

Same routes returned

49

Poll with flapping neighbor

Frequent reachability changes

Routes updated frequently

50

Poll with unreachable network

Network marked unreachable

Route removed from table

Finite-State Machine Model - Testcases

Finite-State Machine Model - Test Cases

#

Test Case

Description

Expected Result

1

Start in Idle state

Router boots up

FSM enters Idle state

2

Send Hello in Idle state

Initiate neighbor discovery

FSM transitions to Acquisition

3

Receive Hello in Acquisition state

Neighbor responds

FSM transitions to Down state

4

Receive Update in Down state

Reachability confirmed

FSM transitions to Up state

5

No Update in Down state

No reachability info

FSM remains in Down state

6

Timer expires in Up state

No Hello received

FSM transitions to Down state

7

Receive Hello in Up state

Keepalive maintained

FSM remains in Up state

8

Receive invalid message in any state

Malformed packet

FSM ignores message

9

Receive Poll in Up state

Request for update

FSM sends Update

10

Receive Update in Up state

Valid routing info

Routing table updated

11

Receive Update in Idle state

Unexpected message

FSM ignores message

12

Receive Hello in Up state

Valid neighbor

FSM remains in Up state

13

Receive Hello from unknown AS

AS mismatch

FSM ignores message

14

Receive Hello with invalid checksum

Corrupted packet

FSM ignores message

15

Receive Hello with TTL = 1

TTL expired

FSM ignores message

16

Receive Hello with TTL = 255

Valid TTL

FSM processes message

17

Receive Hello with valid version

Supported version

FSM processes message

18

Receive Hello with invalid version

Unsupported version

FSM ignores message

19

Receive Hello with valid port

EGP port used

FSM processes message

20

Receive Hello with invalid port

Wrong port

FSM ignores message

21

FSM in Acquisition state

Waiting for Hello

FSM transitions on Hello receipt

22

FSM in Down state

Waiting for Update

FSM transitions on Update receipt

23

FSM in Up state

Normal operation

Routes exchanged

24

FSM in Idle state

No neighbor configured

FSM remains in Idle

25

FSM transitions from Up to Down

Hello timeout

Session marked down

26

FSM transitions from Down to Up

Update received

Session marked up

27

FSM transitions from Acquisition to Down

Hello received

Session initialized

28

FSM transitions from Idle to Acquisition

Poll sent

FSM waits for Hello

29

FSM transitions from Acquisition to Idle

No Hello received

FSM resets

30

FSM transitions from Up to Idle

Manual reset

FSM returns to Idle

31

FSM handles duplicate Hello

Same Hello received again

FSM remains in current state

32

FSM handles delayed Hello

Hello received late

FSM transitions if valid

33

FSM handles malformed Update

Invalid format

FSM ignores message

34

FSM handles valid Update

Proper format

FSM updates routing table

35

FSM handles Update with unreachable route

Metric = unreachable

Route removed

36

FSM handles Update with valid route

Reachable prefix

Route added

37

FSM handles Update with duplicate route

Same prefix repeated

Last route used

38

FSM handles Update with inconsistent metrics

Same prefix, different metrics

Lowest metric used

39

FSM handles Update with invalid IP

IP = 300.0.0.0

Route ignored

40

FSM handles Update with valid IP

IP = 192.168.1.0

Route accepted

41

FSM handles Update with route to loopback

127.0.0.0

Route ignored

42

FSM handles Update with route to multicast

224.0.0.0

Route ignored

43

FSM handles Update with route to broadcast

255.255.255.255

Route ignored

44

FSM handles Update with default route

0.0.0.0

Route accepted

45

FSM handles Update with private IP

10.0.0.0

Route accepted

46

FSM handles Update with public IP

8.8.8.0

Route accepted

47

FSM handles Update with valid AS number

Correct AS

Route accepted

48

FSM handles Update with invalid AS number

AS mismatch

Route ignored

49

FSM handles Update with valid authentication

If supported

Route accepted

50

FSM handles Update with invalid authentication

Wrong key

Route rejected

Simple Packet Structure - Testcases

Simple Packet Structure - Test Cases

#

Test Case

Description

Expected Result

1

Valid EGP header

Properly formatted header

Packet accepted

2

Invalid EGP header

Corrupted or missing fields

Packet rejected

3

Valid version field

Version = 2

Packet processed

4

Invalid version field

Version ? 2

Packet ignored

5

Valid opcode field

Opcode = Hello, Update, etc.

Packet processed

6

Invalid opcode field

Opcode not defined

Packet ignored

7

Valid autonomous system number

AS number matches config

Packet accepted

8

Invalid autonomous system number

AS mismatch

Packet rejected

9

Valid sequence number

Correct sequence

Packet accepted

10

Duplicate sequence number

Replayed packet

Packet ignored

11

Valid status field

Status = 0 (OK)

Packet accepted

12

Invalid status field

Status undefined

Packet ignored

13

Valid checksum

Header checksum correct

Packet accepted

14

Invalid checksum

Header checksum incorrect

Packet discarded

15

Valid length field

Matches actual packet size

Packet accepted

16

Invalid length field

Length mismatch

Packet rejected

17

Valid EGP ID field

Unique identifier

Packet accepted

18

Missing EGP ID field

Field omitted

Packet rejected

19

Valid neighbor field

Correct neighbor IP

Packet accepted

20

Invalid neighbor field

Unknown neighbor

Packet ignored

21

Valid Hello message

Proper format

Session initiated

22

Invalid Hello message

Malformed format

Packet ignored

23

Valid Update message

Proper format

Routing table updated

24

Invalid Update message

Missing fields

Packet rejected

25

Valid Poll message

Proper format

Update expected

26

Invalid Poll message

Opcode mismatch

Packet ignored

27

Valid NR message

Network reachability info

Packet accepted

28

Invalid NR message

Incorrect format

Packet ignored

29

Valid IP prefix in NR

Proper IP format

Route accepted

30

Invalid IP prefix in NR

Malformed IP

Route ignored

31

Valid metric in NR

Metric within range

Route accepted

32

Invalid metric in NR

Metric out of range

Route ignored

33

Valid TTL

TTL = 255

Packet accepted

34

TTL expired

TTL = 0 or 1

Packet dropped

35

Valid port

EGP port used

Packet accepted

36

Invalid port

Port ? EGP standard

Packet ignored

37

Valid source IP

Known router

Packet accepted

38

Spoofed source IP

Unknown or fake IP

Packet ignored

39

Valid destination IP

Correct neighbor IP

Packet accepted

40

Invalid destination IP

Wrong target

Packet ignored

41

Valid packet size

Within MTU

Packet accepted

42

Oversized packet

Exceeds MTU

Packet dropped

43

Valid padding

Proper alignment

Packet accepted

44

Missing padding

Misaligned structure

Packet rejected

45

Valid message type

Recognized opcode

Packet processed

46

Unknown message type

Opcode not defined

Packet ignored

47

Valid response to Poll

Update received

Session maintained

48

No response to Poll

No Update received

Session timeout

49

Valid session state

FSM in correct state

Packet accepted

50

Invalid session state

FSM not ready

Packet ignored

Tree-Like Topology Support - Testcases

Tree-Like Topology Support - Test Cases

#

Test Case

Description

Expected Result

1

Single parent AS

One AS connected to multiple child ASes

Topology supported

2

Linear AS chain

AS1 ? AS2 ? AS3

Topology supported

3

Star topology

Central AS with multiple leaf ASes

Topology supported

4

Binary tree structure

AS hierarchy in binary tree form

Topology supported

5

Deep tree structure

5+ levels of AS hierarchy

Topology supported

6

Wide tree structure

One AS with 10+ children

Topology supported

7

Loop in topology

AS1 ? AS2 ? AS1

Not supported (EGP does not support loops)

8

Mesh topology

Multiple inter-AS links

Not supported

9

Tree with unreachable leaf

Leaf AS not responding

Routes not propagated

10

Tree with unreachable root

Root AS down

Entire tree loses connectivity

11

Tree with valid Hello exchange

All ASes respond

Tree formed successfully

12

Tree with missing Hello

One AS silent

That AS excluded from tree

13

Tree with valid Update flow

Updates flow from root to leaves

Routes propagated

14

Tree with invalid Update

Malformed packet

Update ignored

15

Tree with valid Polling

Polls sent from root

Updates received

16

Tree with missing Poll response

One AS does not respond

That AS marked unreachable

17

Tree with valid AS numbers

All AS numbers unique

Tree formed

18

Tree with duplicate AS numbers

Conflict in AS IDs

Tree formation fails

19

Tree with valid IP prefixes

All routes valid

Routing table updated

20

Tree with invalid IP prefix

Malformed prefix

Route ignored

21

Tree with valid metrics

Reachability metrics correct

Routes accepted

22

Tree with inconsistent metrics

Conflicting metrics

Lowest metric used

23

Tree with valid TTL

TTL = 255

Packets accepted

24

Tree with TTL = 1

TTL expired

Packet dropped

25

Tree with valid checksum

Packet integrity verified

Packet accepted

26

Tree with invalid checksum

Corrupted packet

Packet discarded

27

Tree with valid port

EGP port used

Packet accepted

28

Tree with invalid port

Wrong port

Packet ignored

29

Tree with valid version

Version = 2

Packet processed

30

Tree with invalid version

Version ? 2

Packet ignored

31

Tree with route to private IP

10.0.0.0/8

Route accepted

32

Tree with route to public IP

8.8.8.0/24

Route accepted

33

Tree with route to loopback

127.0.0.0/8

Route ignored

34

Tree with route to multicast

224.0.0.0/4

Route ignored

35

Tree with route to broadcast

255.255.255.255

Route ignored

36

Tree with default route

0.0.0.0

Route accepted

37

Tree with duplicate routes

Same prefix repeated

Last route used

38

Tree with route flapping

Route status changes frequently

Route stability affected

39

Tree with stable routes

No changes

Routing table remains stable

40

Tree with valid neighbor config

Correct IP and AS

Tree formed

41

Tree with misconfigured neighbor

Wrong IP or AS

Node excluded

42

Tree with route aggregation

Summarized routes

Aggregated route accepted

43

Tree with minimal prefix set

Few routes advertised

All accepted

44

Tree with max prefix limit

Exceeds configured limit

Excess routes dropped

45

Tree with policy-based routing

Routes filtered by policy

Only matching routes accepted

46

Tree with authentication

If supported

Tree formed securely

47

Tree with invalid authentication

Wrong key

Node excluded

48

Tree with Hello timeout

No Hello received

Node marked unreachable

49

Tree with Poll timeout

No Update received

Node marked unreachable

50

Tree with full convergence

All nodes reachable and updated

Tree routing stable

Limited Scalability - Testcases

Limited Scalability - Test Cases

#

Test Case

Description

Expected Result

1

Small number of ASes (?5)

Basic EGP deployment

Protocol functions normally

2

Moderate number of ASes (1020)

Mid-sized topology

Protocol functions with minor delays

3

Large number of ASes (>50)

Large-scale topology

Performance degrades

4

Very large number of ASes (>100)

Stress test

Protocol fails to scale

5

Multiple child ASes under one parent

Star topology

Supported

6

Multiple parent ASes

Mesh-like structure

Not supported

7

Loop in AS topology

AS1 ? AS2 ? AS1

Not supported

8

Tree-like hierarchy

AS1 ? AS2 ? AS3

Supported

9

Full mesh of ASes

All ASes interconnected

Not supported

10

Redundant links between ASes

Backup paths

Not utilized

11

Route propagation delay in large AS set

50+ ASes

Noticeable delay

12

Route convergence time in small AS set

?5 ASes

Fast convergence

13

Route convergence time in large AS set

>50 ASes

Slow convergence

14

Update size with 10 routes

Small routing table

Efficient

15

Update size with 1000 routes

Large routing table

Inefficient

16

Polling overhead in small network

Few neighbors

Minimal overhead

17

Polling overhead in large network

Many neighbors

High overhead

18

CPU usage in small topology

Few ASes

Low CPU load

19

CPU usage in large topology

Many ASes

High CPU load

20

Memory usage with small routing table

Few routes

Efficient

21

Memory usage with large routing table

Many routes

High memory usage

22

Bandwidth usage in small network

Few updates

Low bandwidth

23

Bandwidth usage in large network

Frequent updates

High bandwidth

24

Duplicate route entries

Same prefix from multiple ASes

Last route used

25

Conflicting route metrics

Same prefix, different metrics

Lowest metric used

26

Route flapping in large network

Frequent changes

Instability increases

27

Route stability in small network

Stable links

Stable routing

28

Neighbor discovery in small AS set

Few neighbors

Fast discovery

29

Neighbor discovery in large AS set

Many neighbors

Slower discovery

30

Session maintenance in small network

Few sessions

Stable

31

Session maintenance in large network

Many sessions

Unstable

32

Hello message handling in small AS set

Few neighbors

Efficient

33

Hello message handling in large AS set

Many neighbors

Congestion risk

34

Poll message handling in small AS set

Few neighbors

Efficient

35

Poll message handling in large AS set

Many neighbors

Delays expected

36

Update message handling in small AS set

Few routes

Efficient

37

Update message handling in large AS set

Many routes

Processing delay

38

Timer synchronization in small network

Few routers

Accurate

39

Timer synchronization in large network

Many routers

Inconsistent

40

Route filtering in small AS set

Few policies

Easy to manage

41

Route filtering in large AS set

Many policies

Complex to manage

42

Policy enforcement in small network

Simple rules

Effective

43

Policy enforcement in large network

Complex rules

Difficult to enforce

44

Fault isolation in small network

Easy to trace

Quick recovery

45

Fault isolation in large network

Hard to trace

Slow recovery

46

Topology changes in small network

Few changes

Quickly adapted

47

Topology changes in large network

Frequent changes

Slow adaptation

48

Route summarization in small network

Few prefixes

Not needed

49

Route summarization in large network

Many prefixes

Not supported

50

Overall scalability test

100+ ASes, 1000+ routes

EGP fails to scale efficiently

  • Reference links