Protocols/OSCAR/Migration

From NINA Wiki
Jump to navigation Jump to search
OSCAR Protocol
IntroductionTermsClients
Basic
DatatypesFLAPSNACTLV
UUIDsErrorsTool IDs
Host Interaction
Rate LimitsMigrationMessages
Other Services
ADMINADVERTALERT
BARTBOSBUCPCHAT
CHAT_NAV
Tutorials
Sign OnBARTRendezvous
ICBMLocateBuddies
Foodgroups
OSERVICE (0x0001)
LOCATE (0x0002)
BUDDY (0x0003)
ICBM (0x0004)
ADVERT (0x0005)
INVITE (0x0006)
ADMIN (0x0007)
POPUP (0x0008)
PD (0x0009)
USER_LOOKUP (0x000A)
STATS (0x000B)
TRANSLATE (0x000C)
CHAT_NAV (0x000D)
CHAT (0x000E)
ODIR (0x000F)
BART (0x0010)
FEEDBAG (0x0013)
ICQ (0x0015)
BUCP (0x0017)
ALERT (0x0018)
PLUGIN (0x0022)
UNNAMED_FG_24 (0x0024)
MDIR (0x0025)
ARS (0x044A)


The NINA backend supports the concept of migration so we can perform maintenance to backend servers without effecting a user's sessions. The server will initiate the migration and tell the client it needs to migrate to a different server.

The client acknowledges that it is ready to be migrated to the server. The server then tells the client where to reconnect to start its session up again.

Migration SNACs

Name Subgroup Origin Description
OSERVICE__PAUSE_REQ 0x000B Host This is sent by the server when it needs to migrate the client.
OSERVICE__PAUSE_ACK 0x000C Client This is sent by the client to acknowledge the receipt and processing of a OSERVICE__PAUSE_REQ SNAC request.
OSERVICE__RESUME 0x000D Host In certain situations the server may abort a migration after having told the client to PAUSE.
OSERVICE__MIGRATE_GROUPS 0x0012 Host This SNAC commands the client to reconnect to the server specified by the included OSERVICE__TLV_TAGS_RECONNECT_HERE TLV.

From Aleksandr Shutko: Various sequences in OSCAR protocol

  Migration sequence
 

     Migration sequence used to redirect client to new BOS server during current BOS shutdown. Server can migrate whole connection or only several services. Migration always initiated by server. Server can abort migration sequence via SNAC(01,0D) - server resume command.


 Migration sequence
  <<   SNAC(01,0B)   Server sends pause. Client should stop send snacs
  >>   SNAC(01,0C)   Client ack pause command
  <<   SNAC(01,12)   Server sends migration (cookie/BOS address)
  <>   disconnect   Client disconnects from BOS (only full migration)
  <>   login (stage II)   Client start normal login sequence from stage II