Difference between revisions of "Protocols/OSCAR/Migration"

From NINA Wiki
Jump to navigation Jump to search
Line 33: Line 33:
 
| {{Protocols/OSCAR/SNAC/OSERVICE__MIGRATE_GROUPS/Description}}
 
| {{Protocols/OSCAR/SNAC/OSERVICE__MIGRATE_GROUPS/Description}}
 
|}
 
|}
 +
 +
=== From Aleksandr Shutko: Various sequences in OSCAR protocol ===
 +
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
 +
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#E9E9E9>
 +
<table width=100% cellSpacing=0 cellPadding=0 bgcolor="#4040FF" border=0>
 +
<tr>
 +
<td><b><font size=2 color="white">&nbsp;&nbsp;Migration sequence</font></b></td>
 +
</tr>
 +
</table>
 +
</td></tr>
 +
 +
<tr><td  bgcolor=#E9E9E9 >
 +
<table width=100% cellSpacing=0 cellPadding=0 border=0>
 +
<tr><td colspan=3 height=5></td></tr>
 +
<tr><td width=5>&nbsp;</td>
 +
<td>
 +
 +
&nbsp;&nbsp;&nbsp;&nbsp;
 +
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
 +
[[Protocols/OSCAR/SNAC_01_0d|SNAC(01,0D)]] - server resume command.
 +
<br><br>
 +
 +
 +
<table width=100% cellSpacing=0 cellPadding=0 align=center border=0>
 +
<tr><td width=20></td>
 +
<td>
 +
<table width=580 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
 +
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#7070D0><b><font size=2 color=white>&nbsp;Migration sequence</font></b></td></tr>
 +
<tr><td  bgcolor=#E5E5E5 >
 +
 +
<table width=580 cellSpacing=1 cellPadding=1 border=0>
 +
<tr>
 +
<td bgcolor=#f9f9f9 width=35 valign=top>&nbsp;&nbsp;<b>&lt;&lt;</b></td>
 +
<td bgcolor=#f9f9f9 width=200 valign=top>&nbsp;&nbsp;<b>[[Protocols/OSCAR/SNAC_01_0b|SNAC(01,0B)]]</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Server sends pause. Client should stop send snacs</td>
 +
</tr>
 +
 +
<tr>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>&gt;&gt;</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>[[Protocols/OSCAR/SNAC_01_0c|SNAC(01,0C)]]</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Client ack pause command</td>
 +
</tr>
 +
 +
<tr>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>&lt;&lt;</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>[[Protocols/OSCAR/SNAC_01_12|SNAC(01,12)]]</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Server sends migration (cookie/BOS address)</td>
 +
</tr>
 +
 +
<tr>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>&lt;&gt;</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>disconnect</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Client disconnects from BOS (only full migration)</td>
 +
</tr>
 +
 +
<tr>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>&lt;&gt;</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;<b>[[Protocols/OSCAR/Sign_On|login]] (stage II)</b></td>
 +
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Client start normal login sequence from stage II</td>
 +
</tr>
 +
 +
</table>
 +
</td></tr></table>
 +
</td></tr></table>
 +
</td></tr></table>
 +
 +
<br>
 +
 +
</td><td width=15>
 +
</td></tr></table>
 +
</td></tr></table>
 +
</td></tr></table>
  
 
[[Category:Stub]]
 
[[Category:Stub]]

Revision as of 12:10, 14 February 2021

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