Protocol Buffers support in TTCN-3 Titan

Greetings.
ASN.1 is a language for describing structured information and the way this information is sent across dissimilar communication systems. The structured information is encoded in binary. ASN.1 used to be popular in telecommunications but nowadays is not considered to be cool. In comparison, Protocol Buffers are a mechanism to describe structured information and encoding it in binary, and yes, unlike ASN.1 ,Protocol Buffers are hot.
For years, the Earth was ruled by so called human-readable protocols , such as XML and JSON. It appears that humanity got bored of reading all that stuff, so we experience a return to binary encodings. (Either that, or machine-to-machine communication outweighs machine-to-human, and machines don't want us to meddle.)
Anyhow, let's see how Protocol Buffers are supported in the Titan implementation of TTCN-3.
Support comes in the form of scripts, PBPMG.sh and PBPMG.awk (see https://github.com/eclipse/titan.ProtocolModules.ProtoBuff )
(where PBMG resolves as Protocol Buffer Protocol Module Generator -the PBPMG is currently based on the version 2.5.0 version of the Google Protocol Buffers);
the PBMG.sh , when invoked, generates the TTCN-3 equivalent of the ProtoBuff file:
For example
PBPMG.sh protobuf.proto
where the content of protobuf.proto is:
package protobuf;
message Request {
required int32 command_id = 1;
required int32 request_data_length = 2;
required bytes request_data = 3;
optional bytes attachment = 4;
repeated string properties = 5;
message Response {
required int32 command_id = 1;
required int32 response_status = 2;
required int32 response_data_length = 3;
required bytes response_data = 4;
optional bytes attachment = 5;
repeated string properties = 6;
will generate the following protobuf.ttcn file:
// TTCN-3 module generated from protobuf.proto
module protobuf {
// imports
import from ProtoBuff_Types all;
// public imports
// encoder/decoder function declaration
external function f_encode_protobuf_Request(in protobuf_Request pdu) return octetstring
external function f_decode_protobuf_Request(in octetstring pdu) return protobuf_Request
external function f_encode_protobuf_Response(in protobuf_Response pdu) return octetstring
external function f_decode_protobuf_Response(in octetstring pdu) return protobuf_Response
// definitions for enums
// definitions for messages
type record protobuf_Request{ // Request
int32 command_id,
int32 request_data_length,
bytes request_data,
bytes attachment optional,
record of string properties
type record protobuf_Response{ // Response
int32 command_id,
int32 response_status,
int32 response_data_length,
bytes response_data,
bytes attachment optional,
record of string properties
plus the codecs protobuf_EncDec.cc, protobuf_EncDec.hh.
The codecs are not based on the built-in binary codec , they are custom functions.
Now we have everything to represent and encode/decode Protocol Buffers structures.
module protobuff_test {
// imports
import from ProtoBuff_Types all;
import from protobuf all;
template protobuf_Request t_Request:= { // Request
command_id := 10,
request_data_length:= 20,
request_data := 'AABBCCDDEEFF'O ,
attachment:= 'AAAAAABBBBBB'O ,
properties := {"AA","BB"}
template protobuf_Response t_Response:= { // Response
command_id := 10,
response_status:= 100,
response_data_length:= 20,
response_data := 'AABBCCDDEEFF'O ,
attachment:= 'AAAAAABBBBBB'O ,
properties := {"AA","BB"}
control
log(f_encode_protobuf_Request(valueof(t_Request)))
log(f_decode_protobuf_Request(f_encode_protobuf_Request(valueof(t_Request))))
log(f_encode_protobuf_Response(valueof(t_Response)))
log(f_decode_protobuf_Response(f_encode_protobuf_Response(valueof(t_Response))))
The above code, when extracted, compiled and executed:
cd ProtoBuff
cd /bin
../install.script
make
./proto
will encode/decode back and forth the messages , as seen in the log file:
13:12:06.020216 protobuff_test.ttcn:30 Execution of control part in module protobuff_test started.
13:12:06.020256 protobuff_test.ttcn:33 '080A10141A06AABBCCDDEEFF2206AAAAAABBBBBB2A0241412A024242'O
13:12:06.020345 protobuff_test.ttcn:34 { command_id := 10, request_data_length := 20, request_data := 'AABBCCDDEEFF'O, attachment := 'AAAAAABBBBBB'O, properties := { "AA", "BB" } }
13:12:06.020405 protobuff_test.ttcn:36 '080A106418142206AABBCCDDEEFF2A06AAAAAABBBBBB3202414132024242'O
13:12:06.020448 protobuff_test.ttcn:37 { command_id := 10, response_status := 100, response_data_length := 20, response_data := 'AABBCCDDEEFF'O, attachment := 'AAAAAABBBBBB'O, properties := { "AA", "BB" } }
13:12:06.020489 protobuff_test.ttcn:37 Execution of control part in module protobuff_test finished.
Using the appropriate transport, Protocol Buffers messages encoded in binary can be sent across to other machines that can understand the lingo.
Makefile was generated with
makefilegen -s -e proto *.ttcn *.cc *.hh
Best regards
Elemer

Hi Jeff,
Are you using JDevelopers internal client? The internal client does not support all authentication methods just the most popular ones (ext, pserver, ssh2).
If you select an external cvs client in preferences on the Versioning -> CVS page :sspi should now be one of the default access methods.
Thanks,
Geoff

Similar Messages

  • [SOLVED] NFS protocol not supported

    I get this error:
    mount.nfs4: Protocol not supported
    when trying to mount a NFS share from my server like so:
    sudo mount -t nfs4 192.168.1.20:/srv/nfs4/ /media/server
    I can mount it on my raspberry pi, but not on my arch laptop.
    The server configuration is like this:
    /srv/nfs4/ 192.168.1.1/24(rw,fsid=root,no_subtree_check)
    /srv/nfs4/media 192.168.1.1/24(rw,no_subtree_check,nohide)
    showmount -e gives this:
    Export list for 192.168.1.20:
    /srv/nfs4/media 192.168.1.1/24
    /srv/nfs4 192.168.1.1/24
    Any ideas?
    Last edited by marius (2013-08-17 12:50:46)

    I don't think you are supplying all the information that you are given by your machine.  The error you mention is often preceeded by a number of other messages which give some idea of what is actually occurring.  Please post error messages exactly as they are given to you, and check the journal and/or dmesg for more information.
    Also as a side note, you need to use code tags for things like commands and output.  Hit the quote button on this post to see how I created the boxes below (the arrows will make sense when this post is quoted):
    <--These are code tags-->
    <--These are quote tags-->

  • Does teh topicid: protocol actually support anchor links and, if so, how?

    The Oracle® Fusion Middleware Developer's Guide for Oracle Help 11g Release 2 (http://docs.oracle.com/cd/E24382_01/doc.1112/e16280/ohff_tpcfile.htm#OHJWG213) says the following:
    The topicid protocol also supports anchor links. For example:
    *&lt;a href="topicid:getting_started#advanced"&gt;Getting Started&lt;/a&gt;*
    When the Getting Started link is clicked, Oracle Help references the map file and jumps to the advanced anchor position in HTML file associated with the link's topic ID.
    But I cannot seem to get anchor links to work. The HelpBook Previewer returns:
    *Error: topic id topicid#+fragid+ does not map to an URL.*
    I'd expect the topicid: protocol to work like a normal URL. A web browser resolves the URL part to find the file and then locates the fragment identifier within the file content. So I'd expect Oracle Help to locate the file by looking up the topic ID in the map file and then locate the fragment identifier in the content. But the error seems to be saying that Oracle Help expects a separate map entry for each topic ID and fragment ID combination, which hardly makes sense.
    Any advice would be much appreciated.

    Rodger,
    Thank you for your gracious welcome . . .
    and thank you for your swift response . . .
    and thank you for your information (and encouragement!).
    Yes, I read that too, but searched in vain for the specifity of, say, your direction:
    "Go ahead and update to 8.0.2, as it contains the 8.0.1 update."
    So I shall!
    Again, many thanks.

  • Raw Socket: Protocol Not Supported

    OS Solaris 10, using Zones
    I have one zone set up which houses HP Openview NNM 7.5
    Inside of the application you should be able to right click on a node and do a traceroute or telnet to the node.
    Neither works. Get error:
    raw socket: Protocol not supported
    Can anyone tell me if this is an OS issue or HP Openview issue?
    Any assistance will be greatly appreciated!!!

    This is known issue in zone. Please see http://developers.sun.com/solaris/articles/application_in_zone.html about socket function.
    But if you really need traceroute in nnm, you can use /usr/sbin/traceroute.
    Here's how:
    manager@ov:~$ diff /root/old-NNM-IP.tbl $OV_REGISTRATION/C/ovip/NNM-IP.tbl
    473c473
    <          -cmd ovtraceroute ";
              -cmd traceroute "; You can always add something like "xterm -e telnet" instead of "not working" menu item in registration file. Please see "Creating and Using Registration Files" guide on http://docs.hp.com.
    nice nnm-ing :)
    Message was edited by:
    Porky@Pig

  • WebDAV protocol not supported

    Running 10.6.6 server with several websites running on the server.  Have used WebDAV to access the documents directory succesfully.  Just added another site and enabled WebDAV but when trying to connect to the server from client I get an error.
    Connection failed - There was an error connecting to the server "www.mydomain.org" Check the server name or IP and try again.
    In console I find:
    5/9/11 11:17:22 AM          webdavfs_agent[4510]          network_mount: WebDAV protocol not supported; file: /SourceCache/webdavfs/webdavfs-293.2/mount.tproj/webdav_network.c; line: 2844
    All the other sites with WebDav work fine, it's just this one website. 
    Any advice for troubleshooting?

    Solved.  This is an intranet development site with an active internet site.  Had Windows 7 running in Parallels VM and was connected to a corporate secure site which was evidently directing requests to the public internet site.  Wasn't aware that the virtual machine connecting to a corporate secure site would affect the host mac dns resolution.

  • Cisco IDS 4250XL - SSH protocol versions supported

    I recently had a vulnerability scan completed and "SSH protocol versions supported" showed up in it for my IDS. Has anyone come across this and if so, how am I able to mitigate it. Is there a way to change the SSH version on the device?

    What vulnerability is being asserted in the OpenSSH implementation of SSH protocol version 1?
    I have not seen a new problem discovered in more than three years in the SSH protocol version 1. OpenSSH-3.7.1p2 contains all the fixes for all vulnerabilities that I am aware.
    When a vulnerability assessment recommends shutting down SSH protocol version 1, they need to back it up with some facts to show that SSH1 as implemented in the IDS 4.x sensor is insecure.
    =====
    That having been said, you can disable SSH protocol version 1 by editing /etc/ssh/sshd_config and restarting the service. What you will lose is the ability to manage keys in the IDS CLI. So you cannot use authorized keys to log into the sensor.
    The "copy scp:..." and "upgrade scp:..." commands will fail. When you start an SSH2 client, it will refuse to connect to the remote server because it won't trust the host key.
    You also won't be able to manange network devices to perform blocking using the SSH protocol.

  • What trunking protocols are supported by the Cisco AP1200 series

    Guys,
    What trunking protocols are supported by the Cisco AP1200 series?
    Advanved thanking for your reply

    Has to be a dot1q encapsulation.
    Thanks,
    Scott
    Help out other by using the rating system and marking answered questions as "Answered"

  • Protocol not supported for YouTube

    I was trying to view a video clip on YouTube & I got an error message saying the protocol was not supported on my handheld device. I have an 8830 World Edition. Is there something I need to download to watch the video clips?

    Hi,
    Did you browse to m.youtube.com or www.youtube.com?
    You need to goto m.youtube.com....
    Checked out my Blackberry FAQ's and Links to Needed Articles here
    http://darkeen.homelinux.com/index.php/Blackberryfaq

  • Which routing protocols are supported on ASA 5585

    Hi,
    I am curious to know which routing protocol is well supported on Cisco ASA 5585. do someone on the forum has implemented routing on ASA?
    I have ASA 5585 on context mode, as of now 4 contexts have been created. upstream device is Nexus.
    I have ASA with Software Version 8.4(4)1 and Device Manager Version 6.4(9).
    if someone can point me to good implemented example of routing protocol to their environment (like OSPF, BGP) that would be great.
    Thanks

    You're welcome.
    Multiple contexts adds another twist - in ASA 8.4 dynamic routing protocols are not supported at all for multiple contexts. Reference.
    ASA 9.0 added support for dynamic routing protocols in multiple context modes, including OSPF v2 (but not v3 for IPv6). Reference.
    FYI ASA 9.1(2) is current as of this writing and is the recommended release in the 9.x train. (Mentioned near the end of the latest TAC Security podcast - episode #37 here.)

  • Sockets Direct Protocol (SDP) support

    i'm curious if APEX supports the SDP protocol ?
    thank you.
    Andrew
    Message was edited by:
    andrey - explained acronym to remove ambiguity

    my bad, I assumed that there is only one acronym in the Oracle's realm. Wrong assumption.
    I meant Sockets Direct Protocol as defined here and/or here
    <br>
    Message was edited by:
    andrey - Subject has been corrected. thank you John.

  • Specified protocol not supported by IIS Server

    Hi @all,
    I want to use Collaboration in my Enterprise Portal, I can use everything (CLP, Chat, Mailing, etc.), except the Calendar in the Collaboration Rooms. When I enter a room with a Calendar I get the following message: <b><i>The specified protocol is not supported by the IIS server</i></b>.
    I configured the Transports, Exchange System, Calendar Repository, IIS, MSX-A, etc.
    Does somebody have a solution? Or where do I have to look for the needed settings?
    Thanks in advance
    regards
    Lu

    This is a big reason to make the move to dynamic development. There are many sites that use PHP or CF and never connect to a database. The ability to have your menus, headers, footers added to your pages with one simple line of code such as:
    <cfinclude template="FooterContent.cfm">
    for ColdFusion or
    <?php
    include("FooterContent.php"); 
    ?>
    for php
    Makes it well worth moving from static HTML pages to using  CF or php.
    Even if your host did support SSI's  you'll find true dynamic development to be a much more reliable solution - and this isn't even mentioning how to handle form submissions and so many other non database related functions... for example  this line of code
    Copyright 2002 - <cfoutput>#DateFormat(Now(), "yyyy")#</cfoutput>
    Will automatically show the current year at the end of your copyright statement in your footer - sweet, right?
    Hope this encourages toy to make the move.
    Lawrence Cramer - *Adobe Community Professional*
    http://www.Cartweaver.com
    PHP & ColdFusion Shopping Cart for Adobe Dreamweaver and code developers.
    Stay updated:
    http://www.facebook.com/cartweaver
    http://www.twitter.com/cartweaver
    http://blog.cartweaver.com

  • Which wireless encryption protocols are supported by Photosmart 7515?

    and how could I have found this out before buying the printer?  According to the test printout sheet it looks like this printer only supports WPA(not WPA2)/AES(not TKIP) encryption.  Is this true? Did I waste my money on yet another wireless device with out-of-date wireless support?
    I simply cannot get this printer to connect to my network.  I've given the printer's MAC address to the router, I've given the network SSID and password to the printer, and the only thing the printer tells me on the troubleshooting printout is that it wants to use WPA/AES encryption, which is not an option for my router.  My router will do WPA with an unspecified encryption (there's not an option box available to select AES or TKIP) or WPA2 with AES or TKIP.  It is a 802.11b/g/n capable router.
    What makes me absolutely furious about this is that I cannot find any of this information available in any documentation, even online.  I was careful because I got burned on the Kindle that only supports WEP encryption.
    Bill Starritt

    Hello BillStar,
    To my understanding , the printer has nothing to do with the Wirless Encryption compatibility, as the encryption is set and managed on the ROUTER.
    When you run  the Wireless Setup on the printer , it displays the list of Wireless networks and you need to manually select your SSID ( network name). 
    If your network has an ENCRYPTION, then the printer will ask you to enter the Encryption Key or the Passphrase . Once you enter the same, then it connects to the printer and the Router Assisgns an IP address to the printer.
    Regards,
    Jabzi
    Help the community by marking this post .
    Was your question answered? Mark it as an Accepted Solution!
    See a great post? Give it a Kudos!
    Regards,
    Jabzi
    Give Kudos to say "thanks" by clicking on the "thumps Up icon" .
    Click "Accept as Solution" if it solved your problem, so others can find it.
    Although I am an HP employee, I am speaking for myself and not for HP.

  • Smart Phone Control Protocol (SPCP) support after Jan 2014

    Hi,
    Could anyone help me, what would happen with SPA phones (which supports SPCP) after the EoS of UC540/560 and UC320W?
    It would be in the near future (January 2014) and currently I do not know any other Call Control device, which supports SPCP.
    http://www.cisco.com/en/US/prod/collateral/voicesw/ps6788/vcallcon/ps7293/end_of_life_notice_c51-729017_ps7293_Products_End-of-Life_Notice.html
    This document advice to migrate to CUCMBE 6K, which is completely on a different price level and even does not supports SCPC phones.
    Should SMB customers buy BE6K and use all their phones on SIP?
    Any help is appreciated!
    Krisztian

    [Edited]
    End of Sales for SPA phones is not announced, and probably still far away until  their sales will decline enough to justify. Of course, discontinuing UC320 and UC500  is a perfect way for Cisco to sell much less SPA phones.
    If Cisco really wants their SPA phone customers to all go 3CX, Digium or whatever, that is their unfortunate choice.
    Personally, I'm not affected, because I've never sold not even one of these, as to me they looked inferior and short-lived since the beginning.

  • Network protocols supported by HP LaserJet Pro 200 MFP M276nw

    Hello,
    I am about to buy the HP LaserJet Pro 200 MFP M276nw however I cannot find in its manual what network filesystems/protocols it supports for scanning to network folder.
    I need it to be able to scan to a NFS share preferably or to a samba share.
    Can anyone confirm this printer is able to do this?
    Regards.

    Here is a link that will help get you the manual for this printer.
    http://goo.gl/CR3tl
    **Click the KUDOS star on the left to say 'Thanks'**
    Please mark a reply "ACCEPTED AS SOLUTION" if it solved your problem, so others can find it.

  • Supported mail protocols

    Hello,
    Completely new to Macs. I'm trying to get a solid answer on what protocols are supported by the Mail application. I can't seem to find an answer in any knowledge base or article on an *official* apple site. Can someone point me in the right direction?
    rMBP OS X 10.8.2 (12C2034)
    Mail 6.2 (1499)
    Thanks!

    Note "Exchange" is Exchange Web Services, which works with Exchange 2007 and later.  Not MAPI support which is Microsoft-proprietary.

Maybe you are looking for

  • Can anyone explain me this??

    I use Jrun4 app server. I am creating a row in the database using entity beans. The child table record is created using DAO. Both the operations are happening in the same transaction. When i start the server n do the above operation i get parent key

  • Imovie 06 won't play--images freeze up

    I am using imovie 06; when I try to play anything (clip or movie I've edited), it is slow to start, and then only plays a second until the image (and sound) freezes while the arrow/cursor continues to move right. i have searched everywhere online; he

  • An error has occurred while exporting the folio

    An error has occurred while exporting the folio. Failed to download the folio to your local disk. Keep getting this error.. any suggestions? Edit: it's working all of a sudden...

  • Checking a value...String OR int

    checking a value...String OR int how to check a given value whether it is a String OR int if(jTextField1.getText()...) is a String      System.out.println("String"); else //if it an int      System.out.println("int"); How can i check this... pls,tell

  • Basic help on java

    hi...i am new in java. all i want to know is how to minimize a window in system tray when i click on the close button