> What you are suggesting with your Option 3 is to have a new > part in the > "IANA Considerations" of syslog-sign stating the Facilities > not defined > are open to future use by the consensus process (RFC 2434 > page 6). That > sounds good to me. The current set of Facilities and Severities are > listed by IANA here: > http://www.iana.org/assignments/syslog-parameters
Sounds good to me, too. I have had many discussions off-list (with actual customers ;)) that show this is a good idea. local0...7 is a bit limited nowadays ;) > If we do define new Facilities in syslog-sign, then they will have to > adhere to all of the requirements and specifications of > syslog-sign when > it becomes an RFC. Right now I'm trying to think of how to > "Internationalize" the entire syslog packet rather than just > the MSG part. > It __may__ be that we will want PRI values of <193> to <383> > to have the > same Fac/Sev values as <0> through <192> but a device receiving any of > those PRI's would know that the entire packet (following the > PRI) is in > UTF8. Actually, this is a good idea to maintain some backwards compatibility. But it also has some drawbacks. It does not sound very appealing to me the first place, because... (see below) > That's really just an example of why we may want to > put off that > decision at this time as I'm really waiting for someone from > the IAB to > get back to me on the thought of real Internationalization. > > > Of course you know that these suggestions will require J&J to produce > syslog-sign-13. ;-) Seriously, these are good items to bring up. ... Actually, let me bring back the topic of a separate RFC for the syslog packet format. I would like to see -sign to be moved to the standards track as it is. As you (Chris) said, things can always be revised later ;) Let me provide some points pro a layered architecture: #1 It mustn't be complex, so we can keep it consistent with the spirit of syslog ;) #2 I see some issues right now while acutally implementing the syslog RFC series: I am now implementing RFC 3195. I hope to be able to add -sign soon, eventually with the help of some of Albert's code. When I do so, I run into a small dilemma. OK, I can detect the format used when receiving messages. But when sending, what should I do? I don't know if the receiver (or the relay chain) speaks -sign. This is especially an issue with the relay chain... In theory, I should be able to emit sign-messages and older syslogd's should be able to forward it. I think that was part of -sign's spirit. But I can't do. Well, actually it will become a configuration issue where the admin needs to configure my syslogd and tell it what format it should forward. And, yes, I see this issue at least initially with a layered approach. Now let's say -international once again redefines the packet format. Things become even more complex now. I even see the issue that I won't be able to use -sign on -international messages at all, because -sign demands a specific packet format but -international needs to change this. Now imagine the next modifications, for example when 3195 gets updated or some new cool thing is invented for syslog. Here is the picture that I personally would prefer: Let's finish -sign as it is. It is well done and useful work as it is and I think it should move ahead. Let's put -international on a temporary hold. It is very early in the process and not hurt by some weeks delay. Let's begin to think on a new ID to specify the frame format. That ID should be a) simple b) generic enough to cover the past, present and future (hey, nice marketingish... ;)) Let me post a brief outline of what I think should go into it: - independent of the transport, just the frame format itself. It must, however, be specified to work over a simplex connection as this is the type we have with UDP syslog and probably some other implementations - the enhanced facility,priority Albert suggests - maybe we could change it to something like <facil,prio> allowing for even more choice. This (the comma) would also be a clue that this is actually a new format syslog packet - make everything 8bit, so UTF-8 can be used (-international will become *very* easy) - keep the timestamp, hostname and probably tag as it is in -sign (there is a slight chance that some will opt for a change in the tag) - have some (optional) fields to support fragementation - I am thinking along the line of moving e.g. the reboot session id and the msg sequence number into the format itself - of course, as optional fields - IMPORTANT: have a mandatory field that contains the format of the syslog message. It could be a 1, 2, 3 or a string specifying the RFC or ID... So if there is any change in the format, we'll at least have a clear indication. Obviously, it doesn't solve the issue of not knowing which format the sender is to accept, but at least it provides a clue to the sender that it *indeed is a valid message* but it can't parse that format. Knowing this would for sure do some help in processing dealing with it (right now, the collector needs to guess). In short, the message format would be very much as it is today. In fact, some of these changes would probably be done by -international (at least the 8bit part). But putting this in a separate RFC would allow to let all other protocols refer to it. So even if that format is changed to v2, that doesn't necessarily mean a v1 -sign syslogd could not use it - it would not have all options, but it could perform some work. Again, the important fact is it knows it is dealing with a valid syslog message. I know APIs are not discussed in the IETF, but we should take care of how implemtors can actually implement things. Instead of writing a new message parser/formatter for each new RFC in the series, one could now implement a basic parser that hopefully would stay for quite a while and could be used with all upcoming standards. I am sure this would make implementation much easier (especially if I look at the current config settings /guesswork I need to do in my current parsers...). Of course, that format would still allow us to introduce new features by coockies, which I see as the preferred way of doing things. I am also very positive that we have done enough work to now specify a message format that we can life with for a long time without change (if we follow the cookie approach). So let's assume we had this syslog-message RFC. Then we could do the following. I am repeating myself a little to make it clearer: 1. move on with -sign as it is - no changes, make it become a RFC 2. put -international on hold 3. draft -message once -message has become reasonable mature, at least from its design philosophy 4. eventually in parallel: - go on with -international - change RFC 3195 to adopt -message - change -sign to adopt -message - provide a "transport mapping" to use message over UDP (a new ID) We would end with the following layers Transport Mappings: * revised RFC 3195 * new ID on UDP mapping * eventually a mapping onto 3164, so that exisiting infrastructure can be used to carry new packets (I think this is important) * some others? Basic Format * -message Specific Applications * -sign * -international This is much of what many successful protocols do. It is also the same approach used by BEEP. I also think this will not make syslog complex. It sticks easy. In my point of view, it gets even simpler. From the implementors point of view, it would save me a lot of code that otherwise needs to be written (which also makes it more secure ;)). From the perspective of RFC writers, I think it eases their job because they don't need to re-invent the wheel (packet) every time. So in short, I can't see any bad in this. I would appreciate comments on this and would also appreciate if you, Chris, could include this thought in your talks with that person from the IAB. Of course, I can be horribly wrong, but I have made very well experience with layered approachs and I know it sometimes can even be a life safer. Comments? ;-) Rainer