Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does 'sdparta' stand for in a Firefox webRTC session description?

When generating offer and answer objects during webRTC signaling in Firefox, Mozilla added a pun about Session Description Protocols by returning answers and offers that say "THIS_IS_SDPARTA."

Aside from being funny, does the 'arta' portion of 'SDParta' have any meaning?


Below are two SDPs. One was made in Chrome and the other in Firefox, each using the same web app, STUN server, and signaling server.

A webRTC answer object generated by Chrome:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=-```numbers omitted``` 2 IN IP4 123.4.5.6\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:CYLs\r\na=ice-pwd:```pwd omitted```\r\na=ice-options:trickle\r\na=fingerprint:sha-256 ```sha-256 omitted```\r\na=setup:active\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"
}

A webRTC answer object generated by Firefox:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=mozilla...THIS_IS_SDPARTA-61.0.2```numbers omitted``` 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 ```sha-256 omitted``` \r\na=group:BUNDLE sdparta_0\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=ice-pwd:```pwd omitted```\r\na=ice-ufrag:8e051271\r\na=mid:sdparta_0\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=setup:active\r\na=max-message-size:1073741823\r\n"
}

'THIS_IS_SDPARTA' is referencing the movie 300 and the subsequent meme, THIS IS SPARTA.

According to RFC 4566 outlining Session Description Protcol, the origin value is assigned by 'o=value' in the SDP string:

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

I am assuming 'THIS_IS_SDPARTA is being treated as an informal prefix to the session id according to protocol.

I can not find any use of 'ARTA' as an acronym that has any relationship to SDP or webRTC. As a word, 'Arta' could be a person's name, or a place in Greece, Djibouti, or Albania. I cannot find any correlation between ancient Sparta and Arta aside from both being Greek. Wikipedia's disambiguation page on 'Arta.'

Searching stack overflow for 'this_is_sdparta' or 'sdparta' returns code snippets of users troubleshooting their SDPs and signaling, nobody has asked a question with sdparta in their title SO search for 'sdparta', nor have any answers directly discussed 'sdparta' or 'this_is_sdparta' that I could find.

I found two examples of developers specifically talking about 'this_is_sdparta'. One is a tweet from Iñaki Baz Castillo without technical explanation:

Sense of humor in Firefox Nightly #WebRTC:

v=0 o=mozilla...THIS_IS_SDPARTA-37.0a1 44108 0 IN IP4 0.0.0.0 a=group:BUNDLE sdparta_0 sdparta_1

The other is an article, where I could not easily find the author's name and who is mostly just enjoying the humor. Here is a screenshot: THIS IS SDPARTA

note: This is a repost of a question I deleted as it included personal network connection details. Sorry for the confusion.

Aside from being funny, does the 'arta' portion of 'SDParta' have any meaning?

like image 670
BEVR1337 Avatar asked Sep 30 '18 19:09

BEVR1337


2 Answers

Back in 2014 five Mozilla developers (including myself) locked them self in an AirBnB for one week to add multi stream support to Firefox. On Monday evening we concluded that it would be impossible to achieve this with the current code base, which at the time contained a full blown SIP stack from Cisco. On Tuesday morning we started ripping out all the code we never wanted to use again and started to replaced it with code written from scratch, but suitable for the more advanced uses cases of WebRTC.

You can imagine that by the end of the week all of us where pretty fed up with the arcane Session Description Protocol. So when Adam opened the bug Byron started to look into the SDP grammar and where it would allow us to put the Firefox version number. That's when we realized that this would be the ideal place to add some fun.

So TL;DR: just a typical Easter egg, where developers wanted to have some fun. Nothing more.

like image 191
Nils Ohlmeier Avatar answered Sep 20 '22 06:09

Nils Ohlmeier


To expand on Nils' answer, I don't recall whose idea it was among the five of us, but I think it might have been Martin. The first place it appeared in the code is here in some ASCII art in the rewritten code.

We knew that this rewrite was extreme and risky, but our patience with the current state of the code had finally run out, and the mood in the room was reminiscent of Leeroy Jenkins. So a little bit of silly humor crept into the code.


         ,-----.                  ,--.  ,--.
        '  .--./ ,--,--.,--.,--.,-'  '-.`--' ,---. ,--,--,
        |  |    ' ,-.  ||  ||  |'-.  .-',--.| .-. ||      `
        '  '--'\\ '-'  |'  ''  '  |  |  |  |' '-' '|  ||  |
         `-----' `--`--' `----'   `--'  `--' `---' `--''--'

                        :+o+-
                      -dNNNNNd.
                      yNNNNNNNs
                      :mNNNNNm-
                       `/sso/``-://-
                        .:+sydNNNNNNms:                      `://`
                 `-/+shmNNNNNNNNNNNNNNNms-                  :mNNNm/
           `-/oydmNNNNNNNNNNNNNNNNNNNNNNNNdo-              +NNNNNN+
       .shmNNNNNNNNNNNmdyo/:dNNNNNNNNNNNNNNNNdo.         `sNNNNNm+
       hNNNNNNNNmhs+:-`   .dNNNNNNNNNNNNNNNNNNNNh+-`    `hNNNNNm:
       -yddyo/:.         -dNNNNm::ymNNNNNNNNNNNNNNNmdy+/dNNNNNd.
                        :mNNNNd.   `/ymNNNNNNNNNNNNNNNNNNNNNNh`
                       +NNNNNh`       `+hNNNNNNNNNNNNNNNNNNNs
                      sNNNNNy`           .yNNNNNm`-/oymNNNm+
                    `yNNNNNo              oNNNNNm`     `-.
                   .dNNNNm/               oNNNNNm`
                   oNNNNm:                +NNNNNm`
                   `+yho.                 +NNNNNm`
                                          +NNNNNNs.
                                          `yNNNNNNmy-
                                            -smNNNNNNh:
                                              .smNNNNNNh/
                                                `omNNNNNNd:
                                                  `+dNNNNNd
                             ````......````          /hmdy-
            `.:/+osyhddmNNMMMMMMMMMMMMMMMMMMMMNNmddhyso+/:.`
     `-+shmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhs+-`
  -smMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMds-
 hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh
 yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
  .ohNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNh+.
      ./oydmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmhyo:.
             `.:/+osyyhddmmNNMMMMMMMMMMMMMMNNmmddhyyso+/:.`

            ,--------.,--.     ,--.           ,--.
            '--.  .--'|  ,---. `--' ,---.     |  | ,---.
               |  |   |  .-.  |,--.(  .-'     |  |(  .-'
               |  |   |  | |  ||  |.-'  `)    |  |.-'  `)
               `--'   `--' `--'`--'`----'     `--'`----'
                                                                ,--.
       ,---.  ,------.  ,------.                  ,--.          |  |
      '   .-' |  .-.  \ |  .--. ' ,--,--.,--.--.,-'  '-. ,--,--.|  |
      `.  `-. |  |  \  :|  '--' |' ,-.  ||  .--''-.  .-'' ,-.  ||  |
      .-'    ||  '--'  /|  | --' \ '-'  ||  |     |  |  \ '-'  |`--'
      `-----' `-------' `--'      `--`--'`--'     `--'   `--`--'.--.
                                                                '__'
like image 26
Byron Campen Avatar answered Sep 19 '22 06:09

Byron Campen