Home | History | Annotate | Download | only in cast_channel
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 syntax = "proto2";
      6 
      7 option optimize_for = LITE_RUNTIME;
      8 
      9 package extensions.core_api.cast_channel.proto;
     10 
     11 enum EventType {
     12   EVENT_TYPE_UNKNOWN = 0;
     13   CAST_SOCKET_CREATED = 1;
     14   READY_STATE_CHANGED = 2;
     15   CONNECTION_STATE_CHANGED = 3;
     16   READ_STATE_CHANGED = 4;
     17   WRITE_STATE_CHANGED = 5;
     18   ERROR_STATE_CHANGED = 6;
     19   CONNECT_FAILED = 7;
     20   TCP_SOCKET_CONNECT = 8;  // Logged with RV.
     21   TCP_SOCKET_SET_KEEP_ALIVE = 9;
     22   SSL_CERT_WHITELISTED = 10;
     23   SSL_SOCKET_CONNECT = 11;  // Logged with RV.
     24   SSL_INFO_OBTAINED = 12;
     25   DER_ENCODED_CERT_OBTAIN = 13;  // Logged with RV.
     26   RECEIVED_CHALLENGE_REPLY = 14;
     27   AUTH_CHALLENGE_REPLY = 15;
     28   CONNECT_TIMED_OUT = 16;
     29   SEND_MESSAGE_FAILED = 17;
     30   MESSAGE_ENQUEUED = 18;   // Message
     31   SOCKET_WRITE = 19;       // Logged with RV.
     32   MESSAGE_WRITTEN = 20;    // Message
     33   SOCKET_READ = 21;        // Logged with RV.
     34   MESSAGE_READ = 22;       // Message
     35   NOTIFY_ON_MESSAGE = 23;  // Message
     36   NOTIFY_ON_ERROR = 24;
     37   SOCKET_CLOSED = 25;
     38 }
     39 
     40 enum ChannelAuth {
     41   // SSL over TCP.
     42   SSL = 1;
     43   // SSL over TCP with challenge and receiver signature verification.
     44   SSL_VERIFIED = 2;
     45 }
     46 
     47 enum ReadyState {
     48   READY_STATE_NONE = 1;
     49   READY_STATE_CONNECTING = 2;
     50   READY_STATE_OPEN = 3;
     51   READY_STATE_CLOSING = 4;
     52   READY_STATE_CLOSED = 5;
     53 }
     54 
     55 enum ConnectionState {
     56   CONN_STATE_NONE = 1;
     57   CONN_STATE_TCP_CONNECT = 2;
     58   CONN_STATE_TCP_CONNECT_COMPLETE = 3;
     59   CONN_STATE_SSL_CONNECT = 4;
     60   CONN_STATE_SSL_CONNECT_COMPLETE = 5;
     61   CONN_STATE_AUTH_CHALLENGE_SEND = 6;
     62   CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE = 7;
     63   CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE = 8;
     64 }
     65 
     66 enum ReadState {
     67   READ_STATE_NONE = 1;
     68   READ_STATE_READ = 2;
     69   READ_STATE_READ_COMPLETE = 3;
     70   READ_STATE_DO_CALLBACK = 4;
     71   READ_STATE_ERROR = 5;
     72 }
     73 
     74 enum WriteState {
     75   WRITE_STATE_NONE = 1;
     76   WRITE_STATE_WRITE = 2;
     77   WRITE_STATE_WRITE_COMPLETE = 3;
     78   WRITE_STATE_DO_CALLBACK = 4;
     79   WRITE_STATE_ERROR = 5;
     80 }
     81 
     82 enum ErrorState {
     83   CHANNEL_ERROR_NONE = 1;
     84   CHANNEL_ERROR_CHANNEL_NOT_OPEN = 2;
     85   CHANNEL_ERROR_AUTHENTICATION_ERROR = 3;
     86   CHANNEL_ERROR_CONNECT_ERROR = 4;
     87   CHANNEL_ERROR_SOCKET_ERROR = 5;
     88   CHANNEL_ERROR_TRANSPORT_ERROR = 6;
     89   CHANNEL_ERROR_INVALID_MESSAGE = 7;
     90   CHANNEL_ERROR_INVALID_CHANNEL_ID = 8;
     91   CHANNEL_ERROR_CONNECT_TIMEOUT = 9;
     92   CHANNEL_ERROR_UNKNOWN = 10;
     93 }
     94 
     95 enum ChallengeReplyErrorType {
     96   CHALLENGE_REPLY_ERROR_NONE = 1;
     97   CHALLENGE_REPLY_ERROR_PEER_CERT_EMPTY = 2;
     98   CHALLENGE_REPLY_ERROR_WRONG_PAYLOAD_TYPE = 3;
     99   CHALLENGE_REPLY_ERROR_NO_PAYLOAD = 4;
    100   CHALLENGE_REPLY_ERROR_PAYLOAD_PARSING_FAILED = 5;
    101   CHALLENGE_REPLY_ERROR_MESSAGE_ERROR = 6;
    102   CHALLENGE_REPLY_ERROR_NO_RESPONSE = 7;
    103   CHALLENGE_REPLY_ERROR_FINGERPRINT_NOT_FOUND = 8;
    104   CHALLENGE_REPLY_ERROR_NSS_CERT_PARSING_FAILED = 9;
    105   CHALLENGE_REPLY_ERROR_NSS_CERT_NOT_SIGNED_BY_TRUSTED_CA = 10;
    106   CHALLENGE_REPLY_ERROR_NSS_CANNOT_EXTRACT_PUBLIC_KEY = 11;
    107   CHALLENGE_REPLY_ERROR_NSS_SIGNED_BLOBS_MISMATCH = 12;
    108 }
    109 
    110 message SocketEvent {
    111   // Required
    112   optional EventType type = 1;
    113   optional int64 timestamp_micros = 2;
    114 
    115   optional string details = 3;
    116 
    117   optional int32 net_return_value = 4;
    118 
    119   optional string message_namespace = 5;
    120 
    121   optional ReadyState ready_state = 6;
    122   optional ConnectionState connection_state = 7;
    123   optional ReadState read_state = 8;
    124   optional WriteState write_state = 9;
    125   optional ErrorState error_state = 10;
    126 
    127   optional ChallengeReplyErrorType challenge_reply_error_type = 11;
    128   optional int32 nss_error_code = 12;
    129 }
    130 
    131 message AggregatedSocketEvent {
    132   optional int32 id = 1;
    133   optional int32 endpoint_id = 2;
    134   optional ChannelAuth channel_auth_type = 3;
    135   repeated SocketEvent socket_event = 4;
    136   optional int64 bytes_read = 5;
    137   optional int64 bytes_written = 6;
    138 }
    139 
    140 message Log {
    141   // Each AggregatedSocketEvent represents events recorded for a socket.
    142   repeated AggregatedSocketEvent aggregated_socket_event = 1;
    143 
    144   // Number of socket log entries evicted by the logger due to size constraints.
    145   optional int32 num_evicted_aggregated_socket_events = 2;
    146 
    147   // Number of event log entries evicted by the logger due to size constraints.
    148   optional int32 num_evicted_socket_events = 3;
    149 }
    150