github.com/timstclair/heapster@v0.20.0-alpha1/Godeps/_workspace/src/google.golang.org/appengine/internal/socket/socket_service.proto (about)

     1  syntax = "proto2";
     2  option go_package = "socket";
     3  
     4  package appengine;
     5  
     6  message RemoteSocketServiceError {
     7    enum ErrorCode {
     8      SYSTEM_ERROR = 1;
     9      GAI_ERROR = 2;
    10      FAILURE = 4;
    11      PERMISSION_DENIED = 5;
    12      INVALID_REQUEST = 6;
    13      SOCKET_CLOSED = 7;
    14    }
    15  
    16    enum SystemError {
    17      option allow_alias = true;
    18  
    19      SYS_SUCCESS = 0;
    20      SYS_EPERM = 1;
    21      SYS_ENOENT = 2;
    22      SYS_ESRCH = 3;
    23      SYS_EINTR = 4;
    24      SYS_EIO = 5;
    25      SYS_ENXIO = 6;
    26      SYS_E2BIG = 7;
    27      SYS_ENOEXEC = 8;
    28      SYS_EBADF = 9;
    29      SYS_ECHILD = 10;
    30      SYS_EAGAIN = 11;
    31      SYS_EWOULDBLOCK = 11;
    32      SYS_ENOMEM = 12;
    33      SYS_EACCES = 13;
    34      SYS_EFAULT = 14;
    35      SYS_ENOTBLK = 15;
    36      SYS_EBUSY = 16;
    37      SYS_EEXIST = 17;
    38      SYS_EXDEV = 18;
    39      SYS_ENODEV = 19;
    40      SYS_ENOTDIR = 20;
    41      SYS_EISDIR = 21;
    42      SYS_EINVAL = 22;
    43      SYS_ENFILE = 23;
    44      SYS_EMFILE = 24;
    45      SYS_ENOTTY = 25;
    46      SYS_ETXTBSY = 26;
    47      SYS_EFBIG = 27;
    48      SYS_ENOSPC = 28;
    49      SYS_ESPIPE = 29;
    50      SYS_EROFS = 30;
    51      SYS_EMLINK = 31;
    52      SYS_EPIPE = 32;
    53      SYS_EDOM = 33;
    54      SYS_ERANGE = 34;
    55      SYS_EDEADLK = 35;
    56      SYS_EDEADLOCK = 35;
    57      SYS_ENAMETOOLONG = 36;
    58      SYS_ENOLCK = 37;
    59      SYS_ENOSYS = 38;
    60      SYS_ENOTEMPTY = 39;
    61      SYS_ELOOP = 40;
    62      SYS_ENOMSG = 42;
    63      SYS_EIDRM = 43;
    64      SYS_ECHRNG = 44;
    65      SYS_EL2NSYNC = 45;
    66      SYS_EL3HLT = 46;
    67      SYS_EL3RST = 47;
    68      SYS_ELNRNG = 48;
    69      SYS_EUNATCH = 49;
    70      SYS_ENOCSI = 50;
    71      SYS_EL2HLT = 51;
    72      SYS_EBADE = 52;
    73      SYS_EBADR = 53;
    74      SYS_EXFULL = 54;
    75      SYS_ENOANO = 55;
    76      SYS_EBADRQC = 56;
    77      SYS_EBADSLT = 57;
    78      SYS_EBFONT = 59;
    79      SYS_ENOSTR = 60;
    80      SYS_ENODATA = 61;
    81      SYS_ETIME = 62;
    82      SYS_ENOSR = 63;
    83      SYS_ENONET = 64;
    84      SYS_ENOPKG = 65;
    85      SYS_EREMOTE = 66;
    86      SYS_ENOLINK = 67;
    87      SYS_EADV = 68;
    88      SYS_ESRMNT = 69;
    89      SYS_ECOMM = 70;
    90      SYS_EPROTO = 71;
    91      SYS_EMULTIHOP = 72;
    92      SYS_EDOTDOT = 73;
    93      SYS_EBADMSG = 74;
    94      SYS_EOVERFLOW = 75;
    95      SYS_ENOTUNIQ = 76;
    96      SYS_EBADFD = 77;
    97      SYS_EREMCHG = 78;
    98      SYS_ELIBACC = 79;
    99      SYS_ELIBBAD = 80;
   100      SYS_ELIBSCN = 81;
   101      SYS_ELIBMAX = 82;
   102      SYS_ELIBEXEC = 83;
   103      SYS_EILSEQ = 84;
   104      SYS_ERESTART = 85;
   105      SYS_ESTRPIPE = 86;
   106      SYS_EUSERS = 87;
   107      SYS_ENOTSOCK = 88;
   108      SYS_EDESTADDRREQ = 89;
   109      SYS_EMSGSIZE = 90;
   110      SYS_EPROTOTYPE = 91;
   111      SYS_ENOPROTOOPT = 92;
   112      SYS_EPROTONOSUPPORT = 93;
   113      SYS_ESOCKTNOSUPPORT = 94;
   114      SYS_EOPNOTSUPP = 95;
   115      SYS_ENOTSUP = 95;
   116      SYS_EPFNOSUPPORT = 96;
   117      SYS_EAFNOSUPPORT = 97;
   118      SYS_EADDRINUSE = 98;
   119      SYS_EADDRNOTAVAIL = 99;
   120      SYS_ENETDOWN = 100;
   121      SYS_ENETUNREACH = 101;
   122      SYS_ENETRESET = 102;
   123      SYS_ECONNABORTED = 103;
   124      SYS_ECONNRESET = 104;
   125      SYS_ENOBUFS = 105;
   126      SYS_EISCONN = 106;
   127      SYS_ENOTCONN = 107;
   128      SYS_ESHUTDOWN = 108;
   129      SYS_ETOOMANYREFS = 109;
   130      SYS_ETIMEDOUT = 110;
   131      SYS_ECONNREFUSED = 111;
   132      SYS_EHOSTDOWN = 112;
   133      SYS_EHOSTUNREACH = 113;
   134      SYS_EALREADY = 114;
   135      SYS_EINPROGRESS = 115;
   136      SYS_ESTALE = 116;
   137      SYS_EUCLEAN = 117;
   138      SYS_ENOTNAM = 118;
   139      SYS_ENAVAIL = 119;
   140      SYS_EISNAM = 120;
   141      SYS_EREMOTEIO = 121;
   142      SYS_EDQUOT = 122;
   143      SYS_ENOMEDIUM = 123;
   144      SYS_EMEDIUMTYPE = 124;
   145      SYS_ECANCELED = 125;
   146      SYS_ENOKEY = 126;
   147      SYS_EKEYEXPIRED = 127;
   148      SYS_EKEYREVOKED = 128;
   149      SYS_EKEYREJECTED = 129;
   150      SYS_EOWNERDEAD = 130;
   151      SYS_ENOTRECOVERABLE = 131;
   152      SYS_ERFKILL = 132;
   153    }
   154  
   155    optional int32 system_error = 1 [default=0];
   156    optional string error_detail = 2;
   157  }
   158  
   159  message AddressPort {
   160    required int32 port = 1;
   161    optional bytes packed_address = 2;
   162  
   163    optional string hostname_hint = 3;
   164  }
   165  
   166  
   167  
   168  message CreateSocketRequest {
   169    enum SocketFamily {
   170      IPv4 = 1;
   171      IPv6 = 2;
   172    }
   173  
   174    enum SocketProtocol {
   175      TCP = 1;
   176      UDP = 2;
   177    }
   178  
   179    required SocketFamily family = 1;
   180    required SocketProtocol protocol = 2;
   181  
   182    repeated SocketOption socket_options = 3;
   183  
   184    optional AddressPort proxy_external_ip = 4;
   185  
   186    optional int32 listen_backlog = 5 [default=0];
   187  
   188    optional AddressPort remote_ip = 6;
   189  
   190    optional string app_id = 9;
   191  
   192    optional int64 project_id = 10;
   193  }
   194  
   195  message CreateSocketReply {
   196    optional string socket_descriptor = 1;
   197  
   198    optional AddressPort server_address = 3;
   199  
   200    optional AddressPort proxy_external_ip = 4;
   201  
   202    extensions 1000 to max;
   203  }
   204  
   205  
   206  
   207  message BindRequest {
   208    required string socket_descriptor = 1;
   209    required AddressPort proxy_external_ip = 2;
   210  }
   211  
   212  message BindReply {
   213    optional AddressPort proxy_external_ip = 1;
   214  }
   215  
   216  
   217  
   218  message GetSocketNameRequest {
   219    required string socket_descriptor = 1;
   220  }
   221  
   222  message GetSocketNameReply {
   223    optional AddressPort proxy_external_ip = 2;
   224  }
   225  
   226  
   227  
   228  message GetPeerNameRequest {
   229    required string socket_descriptor = 1;
   230  }
   231  
   232  message GetPeerNameReply {
   233    optional AddressPort peer_ip = 2;
   234  }
   235  
   236  
   237  message SocketOption {
   238  
   239    enum SocketOptionLevel {
   240      SOCKET_SOL_IP = 0;
   241      SOCKET_SOL_SOCKET = 1;
   242      SOCKET_SOL_TCP = 6;
   243      SOCKET_SOL_UDP = 17;
   244    }
   245  
   246    enum SocketOptionName {
   247      option allow_alias = true;
   248  
   249      SOCKET_SO_DEBUG = 1;
   250      SOCKET_SO_REUSEADDR = 2;
   251      SOCKET_SO_TYPE = 3;
   252      SOCKET_SO_ERROR = 4;
   253      SOCKET_SO_DONTROUTE = 5;
   254      SOCKET_SO_BROADCAST = 6;
   255      SOCKET_SO_SNDBUF = 7;
   256      SOCKET_SO_RCVBUF = 8;
   257      SOCKET_SO_KEEPALIVE = 9;
   258      SOCKET_SO_OOBINLINE = 10;
   259      SOCKET_SO_LINGER = 13;
   260      SOCKET_SO_RCVTIMEO = 20;
   261      SOCKET_SO_SNDTIMEO = 21;
   262  
   263      SOCKET_IP_TOS = 1;
   264      SOCKET_IP_TTL = 2;
   265      SOCKET_IP_HDRINCL = 3;
   266      SOCKET_IP_OPTIONS = 4;
   267  
   268      SOCKET_TCP_NODELAY = 1;
   269      SOCKET_TCP_MAXSEG = 2;
   270      SOCKET_TCP_CORK = 3;
   271      SOCKET_TCP_KEEPIDLE = 4;
   272      SOCKET_TCP_KEEPINTVL = 5;
   273      SOCKET_TCP_KEEPCNT = 6;
   274      SOCKET_TCP_SYNCNT = 7;
   275      SOCKET_TCP_LINGER2 = 8;
   276      SOCKET_TCP_DEFER_ACCEPT = 9;
   277      SOCKET_TCP_WINDOW_CLAMP = 10;
   278      SOCKET_TCP_INFO = 11;
   279      SOCKET_TCP_QUICKACK = 12;
   280    }
   281  
   282    required SocketOptionLevel level = 1;
   283    required SocketOptionName option = 2;
   284    required bytes value = 3;
   285  }
   286  
   287  
   288  message SetSocketOptionsRequest {
   289    required string socket_descriptor = 1;
   290    repeated SocketOption options = 2;
   291  }
   292  
   293  message SetSocketOptionsReply {
   294  }
   295  
   296  message GetSocketOptionsRequest {
   297    required string socket_descriptor = 1;
   298    repeated SocketOption options = 2;
   299  }
   300  
   301  message GetSocketOptionsReply {
   302    repeated SocketOption options = 2;
   303  }
   304  
   305  
   306  message ConnectRequest {
   307    required string socket_descriptor = 1;
   308    required AddressPort remote_ip = 2;
   309    optional double timeout_seconds = 3 [default=-1];
   310  }
   311  
   312  message ConnectReply {
   313    optional AddressPort proxy_external_ip = 1;
   314  
   315    extensions 1000 to max;
   316  }
   317  
   318  
   319  message ListenRequest {
   320    required string socket_descriptor = 1;
   321    required int32 backlog = 2;
   322  }
   323  
   324  message ListenReply {
   325  }
   326  
   327  
   328  message AcceptRequest {
   329    required string socket_descriptor = 1;
   330    optional double timeout_seconds = 2 [default=-1];
   331  }
   332  
   333  message AcceptReply {
   334    optional bytes new_socket_descriptor = 2;
   335    optional AddressPort remote_address = 3;
   336  }
   337  
   338  
   339  
   340  message ShutDownRequest {
   341    enum How {
   342      SOCKET_SHUT_RD = 1;
   343      SOCKET_SHUT_WR = 2;
   344      SOCKET_SHUT_RDWR = 3;
   345    }
   346    required string socket_descriptor = 1;
   347    required How how = 2;
   348    required int64 send_offset = 3;
   349  }
   350  
   351  message ShutDownReply {
   352  }
   353  
   354  
   355  
   356  message CloseRequest {
   357    required string socket_descriptor = 1;
   358    optional int64 send_offset = 2 [default=-1];
   359  }
   360  
   361  message CloseReply {
   362  }
   363  
   364  
   365  
   366  message SendRequest {
   367    required string socket_descriptor = 1;
   368    required bytes data = 2 [ctype=CORD];
   369    required int64 stream_offset = 3;
   370    optional int32 flags = 4 [default=0];
   371    optional AddressPort send_to = 5;
   372    optional double timeout_seconds = 6 [default=-1];
   373  }
   374  
   375  message SendReply {
   376    optional int32 data_sent = 1;
   377  }
   378  
   379  
   380  message ReceiveRequest {
   381    enum Flags {
   382      MSG_OOB = 1;
   383      MSG_PEEK = 2;
   384    }
   385    required string socket_descriptor = 1;
   386    required int32 data_size = 2;
   387    optional int32 flags = 3 [default=0];
   388    optional double timeout_seconds = 5 [default=-1];
   389  }
   390  
   391  message ReceiveReply {
   392    optional int64 stream_offset = 2;
   393    optional bytes data = 3 [ctype=CORD];
   394    optional AddressPort received_from = 4;
   395    optional int32 buffer_size = 5;
   396  }
   397  
   398  
   399  
   400  message PollEvent {
   401  
   402    enum PollEventFlag {
   403      SOCKET_POLLNONE = 0;
   404      SOCKET_POLLIN = 1;
   405      SOCKET_POLLPRI = 2;
   406      SOCKET_POLLOUT = 4;
   407      SOCKET_POLLERR = 8;
   408      SOCKET_POLLHUP = 16;
   409      SOCKET_POLLNVAL = 32;
   410      SOCKET_POLLRDNORM = 64;
   411      SOCKET_POLLRDBAND = 128;
   412      SOCKET_POLLWRNORM = 256;
   413      SOCKET_POLLWRBAND = 512;
   414      SOCKET_POLLMSG = 1024;
   415      SOCKET_POLLREMOVE = 4096;
   416      SOCKET_POLLRDHUP = 8192;
   417    };
   418  
   419    required string socket_descriptor = 1;
   420    required int32 requested_events = 2;
   421    required int32 observed_events = 3;
   422  }
   423  
   424  message PollRequest {
   425    repeated PollEvent events = 1;
   426    optional double timeout_seconds = 2 [default=-1];
   427  }
   428  
   429  message PollReply {
   430    repeated PollEvent events = 2;
   431  }
   432  
   433  message ResolveRequest {
   434    required string name = 1;
   435    repeated CreateSocketRequest.SocketFamily address_families = 2;
   436  }
   437  
   438  message ResolveReply {
   439    enum ErrorCode {
   440      SOCKET_EAI_ADDRFAMILY = 1;
   441      SOCKET_EAI_AGAIN = 2;
   442      SOCKET_EAI_BADFLAGS = 3;
   443      SOCKET_EAI_FAIL = 4;
   444      SOCKET_EAI_FAMILY = 5;
   445      SOCKET_EAI_MEMORY = 6;
   446      SOCKET_EAI_NODATA = 7;
   447      SOCKET_EAI_NONAME = 8;
   448      SOCKET_EAI_SERVICE = 9;
   449      SOCKET_EAI_SOCKTYPE = 10;
   450      SOCKET_EAI_SYSTEM = 11;
   451      SOCKET_EAI_BADHINTS = 12;
   452      SOCKET_EAI_PROTOCOL = 13;
   453      SOCKET_EAI_OVERFLOW = 14;
   454      SOCKET_EAI_MAX = 15;
   455    };
   456  
   457    repeated bytes packed_address = 2;
   458    optional string canonical_name = 3;
   459    repeated string aliases = 4;
   460  }