Hats Network | LogoHats Network
BGP Communities

PoP Codes

Point of Presence (PoP) codes used in AS203314 BGP communities for location-based routing across 16+ PoPs in Hong Kong, Tokyo, Singapore, Amsterdam, Frankfurt, London, Los Angeles, New York, and more.

Each Point of Presence (PoP) has a unique 3-digit code used in community strings like 203314:120:XXX and 203314:202:XXX.

Usage: These codes identify specific PoP locations in internal communities (120:XXX, 125:XXX) and control communities (202:XXX).

PoP Code Reference

LocationIATAGenerationTypePoP CodeNotes
Hong KongHKG1Gen2Core101Unique
Hong KongHKG2Gen2Core102Unique
Hong KongHKG3Gen2Core103
TaiwanTPE1Gen2Core121
TaiwanTPE2Gen2Core122
TokyoTYO1Gen2Edge111
TokyoTYO2Gen2Core131Unique
SingaporeSIN1Gen2Core151Unique
SeattleSEAGen2Core301
AshburnIADGen2Core302
San JoseSJCGen2Edge303
MoscowMOWGen2Core201
FrankfurtFRAGen2Edge252
ZurichZRHGen2Edge251
AmsterdamAMSGen2Edge253
BerlinBERGen2Edge254Unique
LondonLONGen2Edge255Unique
MelbourneMELGen2Edge451

Type Definitions

  • Core PoP: Major interconnection points with multiple upstream providers
  • Edge PoP: Smaller presence focused on local connectivity

Generation Definitions

  • Gen2: Second-generation infrastructure (current deployment)

Using PoP Codes

In Internal Communities

Identify where a route was learned:

# Learned-at tags (set by AS203314 on routes you receive):
# (203314, 120, 101) -> HKG1 (Hong Kong)
# (203314, 120, 131) -> TYO2 (Tokyo)
# (203314, 120, 302) -> IAD (Ashburn)

filter prefer_hkg1_routes_v4 {
  if (203314, 120, 101) ~ bgp_large_community then bgp_local_pref = 200;
  accept;
}

In Control Communities

Exclude specific PoPs from receiving announcements:

bgp_large_community.add((203314, 202, 301)); # Do not announce via Seattle
bgp_large_community.add((203314, 202, 131)); # Do not announce via Tokyo
bgp_large_community.add((203314, 202, 102)); # Do not announce via HKG2

Configuration Snippets (JunOS / BIRD2)

Use PoP codes in the control community 203314:202:XXX to exclude specific locations. For example, Amsterdam is 253, so the large community is 203314:202:253.

set policy-options community HATS-NO-AMS members large:203314:202:253

set policy-options policy-statement EXPORT-TO-HATS term NO-AMS from route-filter 203.0.113.0/24 exact
set policy-options policy-statement EXPORT-TO-HATS term NO-AMS then community add HATS-NO-AMS
set policy-options policy-statement EXPORT-TO-HATS term NO-AMS then accept
set policy-options policy-statement EXPORT-TO-HATS term REJECT-ALL then reject
filter export_to_hats_v4 {
  if net = 203.0.113.0/24 then {
    bgp_large_community.add((203314, 202, 253)); # no AMS
    accept;
  }
  reject; # Safety default
}

Tip: PoP codes are primarily used for granular traffic engineering when you need to control route propagation at the location level.

On this page