Z Z E R M A I L matti.aarnio@sonera.fi 1 - - PowerPoint PPT Presentation

z
SMART_READER_LITE
LIVE PREVIEW

Z Z E R M A I L matti.aarnio@sonera.fi 1 - - PowerPoint PPT Presentation

ZMailer A Different Kind of MTA Z Z E R M A I L matti.aarnio@sonera.fi 1


slide-1
SLIDE 1
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer — A Different Kind of MTA

E R L Z A I M

Z

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

1

slide-2
SLIDE 2
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer — A Different Kind of MTA A presentation of ZMailer for FUUG at SEA 2000 conference FUUG = Finnish Unix User Group SEA = The baltic sea; cruising from Helsinki to Stockholm, and back Matti Aarnio, 15-Sep-2000 The overlays and notes are supplementary material, which supports the mainline

  • slides. (Page numbers at low right corner have a hyphen in them.)

Note: When viewing this with XPDF (0.90 or 0.91), few T EX fonts will be invisible. Adobe AcroRe- ader 4.0 is able to show those fonts. (Mainly these are less-than and greater-than glyphs around email addresses in baseline text.)

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

1-a

slide-3
SLIDE 3
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

A bit of History

✘✙ ✚✛✜✢ ✣

was created at University of Toronto around 1986 by Mr. Rayan Zachari- assen (hence the “Z” in the name.) Back then the king of the hillock was (and still is) sendmail(8), but it was troubled with lots and lots of security problems. The sendmail(8) is also a resource consumption pig – having same process do message collection, and its final delivery may make sense in low-load environ- ments, but with high volumes use of queues is a must.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

2

slide-4
SLIDE 4
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

A bit more of History

Rayan went to private sector around 1992, and ZMailer development was essen- tially abandoned by him. Since then, yours truly has been hacking at it developing all kinds of extensions for modern Internet email.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

3

slide-5
SLIDE 5
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

Introduction to the Terminology

In the 1970’es the Institute for Federal Information Processing defined terminology for then a new thing: email. The terminology was made more popular by X.400 standard from 1984. MTA: Mail Transfer Agent – program to move mail from one system to other. MDA/LDA: A latter addition; Message/Local Delivery Agent – program (subsystem) doing deliv- ery to local message store/driving program agents/whatnot. MS: Message Store – Standard UNIX mailbox, or something way more complicated like a database. MUA: Mail User Agent – program which user uses to pick their email from the MS, read them, compose email, and submit to the care of the MTA. UA: A generic X.400 term for the User Agent – basically software entity acting on message content, usually driven directly by the MTA without the message ever going via MS. (E.g. quite unlike MTA, compare with vacation(1))

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

4

slide-6
SLIDE 6
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer structure

Router(s) smtpserver ‘‘sendmail’’ Router spool(s) Transporters Scheduler Command pipes Transport spool Input spool Mailbox

ZMailer consists of several main subsystems running in coordinated, although separate existence. This means also that any of the subsystems can be shut down for a while without harming other subsystem functionality. The task-transfer in between the subsystems is done via the filesystem – “spool”. Performance of this filesystem is usually the ultimate system throughput limit. There are no suid-anything programs in this system!

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

5

slide-7
SLIDE 7
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer structure

Router(s) smtpserver ‘‘sendmail’’ Router spool(s) Transporters Scheduler Command pipes Transport spool Input spool Mailbox

Input subsystems: sendmail, smtpserver, rmail, mail(3) library Routing subsystem: router Delivery subsystem: scheduler, and transport agents Plus a set of administrative tools. The goal has been that each subsystem uses minimal possible amount of resources (memory, CPU, syscalls), and privileges to achieve its task. There are also resource usage limitation features built in.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

6

slide-8
SLIDE 8
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “

✤ ✥ ✦✧ ★ ✦ ✩ ✩ ✪ ✫ ✬ ✭

The

✮ ✯ ✰✱ ✲ ✰ ✳ ✳✴ ✵ ✶ ✷

is ZMailer’s way of referring to filesystem where a few basic things are guaranteed to happen:

  • 1. moving files around with rename(2) and/or link(2), and unlink(2) works just

fine in between different directories

  • 2. i-node numbers are preserved over rename(2), and link(2) system calls

There are filesystems where these two things don’t happen, e.g. possibly link(2) can’t be done in between directories. Such ones are not suitable for ZMailer’s

✮ ✯ ✰✱ ✲ ✰ ✳ ✳✴ ✵ ✶ ✷

partition use.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

7

slide-9
SLIDE 9
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “sendmail”

For normal local system use there needs to be a well-known submission interface for email. The de-facto one is sendmail. ZMailer’s sendmail implements most of message submission options of the real sendmail(8). Many of sendmail(8) options are meaningless in ZMailer, and thus they are ig- nored, or in case of several administrative functions, start subsystems in interac- tive test mode and/or just plain complain loudly. For message submission, ZMailer’s sendmail is extremely lightweight one. Just writing the message envelope and message to the file, and moving it to router subsystem’s care.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

8

slide-10
SLIDE 10
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “sendmail”

In normal message submission the sendmail will just spool the message into

✮ ✯ ✰✱ ✲ ✰ ✳ ✳✴ ✵ ✶ ✷ ✸ ✹✺✻ ✼ ✸ ✷

, however if option “-v” is used, process is left behind to poll a message specific “verbose trace” log file, and its content is copied to STDERR of the process. The verbose trace copy process ends when the scheduler process writes a line:

✽✾ ✿ ✼❀ ✺ ❁ ✼ ✸ ❀ ✹ ❂ ✼ ❃ ❃ ❃ ❃

to the log file. ZMailer’s sendmail is just message submission interface, like also the smtpserver, and libzmailer.a contained mail(3).

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

9

slide-11
SLIDE 11
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver”

  • about features
  • about hooks to external subsystems
  • about protocol quirks
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

10

slide-12
SLIDE 12
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (2)

ESMTP RFC’s 1425/1651/2045 EHLO framework 1426/1652 8BITMIME 1427/1653/1870 SIZE 1830 CHUNKING 1854/2197 PIPELINING 1891 Delivery Status Notification 1985 ETRN 2034 ENHANCEDSTATUSCODES 2476 Message Submission Agent 2487 STARTTLS 2554+MS AUTH LOGIN 2554+Netscape AUTH=LOGIN 2852 DELIVERBY

ZMailer’s smtpserver subsystem im- plements a rich set of enhanced SMTP features defined over the last 10 or so years. At the same time it aims to be lightweight, fast protocol receiver with ability to quickly verify incoming proto- col stream syntax conformance, but it can also be configured to behave slop- pily in this regard.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

11

slide-13
SLIDE 13
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (3)

The smtpserver can do interactive routing analysis of MAIL FROM: and RCPT TO: phase envelope addresses by running a router process synchronously un- derneath itself, however that is seriously heavy-weight thing, and really taxes system performance for no practically useful thing. A more useful approach is simply to do SMTP MX/A routing rules analysis of source and destination envelope addresses, with some control rules from a few local database files giving the system an idea of which domains are local, and which are rules for finding which domains are our customers.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

12

slide-14
SLIDE 14
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (4)

There are also some experimental hooks to run external message content analy- sis program for each received message synchronous for the message reception. A non-experimental thing is STARTTLS encrypted application mode implemented with OpenSSL library. ZMailer has been used as one of comparison benchmarks for sendmail(8)’s new STARTTLS functionality. Session encryption was mainly implemented for giving some peace of mind when using plaintext password authentication for email sending.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

13

slide-15
SLIDE 15
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (5)

As much as I would like to run things with strict protocol adherence also at mes- sage reception, the world seems to be full of crappy systems whose coders have done several basic mistakes:

SMTP protocol replies can be multiline all the time (RFC 821 Annex E), many softwares groak when receiving such replies.

SMTP protocol replies can arrive in multiple TCP segments (some MS platform software does not do proper line segment collection into lines, and instead expects the receive return entire line(s) at one go.)

ZMailer’s smtpserver defaults to one-line replies sent out in one block. (Except with PIPELINING optimization.)

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

14

slide-16
SLIDE 16
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (6)

“The theory of SMTP reply codes” (RFC 821 Annex E) tells that if exact code is not known (e.g. new non-821-listed ones are invented), the first digit should guide its interpretation. Many systems barf completely when they encounter unexpected reply code. ZMailer’s smtpserver tries to use only “valid at the place” reply codes.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

15

slide-17
SLIDE 17
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (7)

RFC 821 has quite clear BNF production rules for the protocol syntax, and still lots of clients are sending “MAIL FROM: user@domain” without the manda- tory

and

angle brackets. ZMailer’s smtpserver can be configured to accept such Sloppy input proto-

  • col. (The sendmail(8) is the archetype of “sloppy by default” SMTP receive

protocol implementation, and also the reason for these utterly sloppy client implementations.)

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

16

slide-18
SLIDE 18
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (8)

Many SMTP client systems can’t report accurately what protocol command they sent out when reporting to user an error they encountered while talking to the server. ZMailer’s smtpserver attempts to copy the MAIL FROM/RCPT TO address in the diagnostic report.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

17

slide-19
SLIDE 19
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “smtpserver” (9)

Many SMTP client systems give up the entire message when in a multi- recipient mail even one of the RCPT TO addresses is yielding 400 or 500 series reply. ZMailer does not yet have a solution for this kind of SMTP client stupidity. Many, if not all, user agents have this problem, as seem to have “MTA” class things like “ccMail”.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18

slide-20
SLIDE 20
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈ ❈ ❉ ❊ ❋
  • ❉❍
■ ❏ ❍ ■❑ ▲▼ ◆❖ P ◗❘ ❋ ▼ ❙ ❍ ◆ ❍ ■ ◗ ❋ ❍❚ ❍ ❚ ❯ ❋ ❯ ▼ ◆ ❈ ❈❱❲ ❳ ❲❨ ❊ ◗ ❩ ❉ ❯ ❬ ❍ ❭ ❪ ❪ ❪ ❪ ❪ ❪ ❪ ❈ ❫ ◗ ❊ ❍ ◗ ❉ P ❨ P ▼
❯ ▼ ◆ ❈❱❲ ❳ ❲❨ ❊ ❯ ◆ P ◗ ❏ ◗ ❯ ❴ ❉
▲❍ ❵ ❪ ❪ ❪ ❈ ❨ ❯ ◆ ❯ ❊ ❘ ❊ ❖ ■ ❍ ❍ ❯ ◆ ❱ ❛ ❫ ❜ ❛ ❝ ❝❞ ❡ ❢ ◗ ❖ ❋ ❍ ■ ❈ ❈ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❣ ◗ ❉ ◗ ■ ■ ❯ ❏ ❍ ❚ ❤ ❯ ◆ ✐ ❞❥ ❛ ❦❧ ❜ ❢ ❫ ❑ ❈❱❲ ❳ ❲❨ ❊ ◗ ❩ P ❍ ■ ■ ▼ ■ P ■ ❍ ▲ ❯
❍ ◆ ❋ ❉ ♠ ❈ ❨ ▼ ■ ❍ ❋ ❣ ◗ ◆ ❋ ❣ ❯ ❉ ❯ ❉
▼♥ ◗ ♥ ❴ ♦ ❫ ❱❲❨ ♣ ❈❱❲ ❳ ❲❨ ❨ ◗ ❩ ❫ ◗ ❊ ❍ ❞
▼ ❘ ■ ▲ ❍ ❭ ❪ ❈ ❨ ◗ ❩ ❉ ❯ ❊ ❘ ❴ ❋ ◗ ◆ ❍ ▼ ❘ ❉ ▲▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❈ ❈ ❖ ■ ▼ ❊ ◗ ◆ ♦ ❞ ❱ ❉▼ ❘ ■ ▲❍ ◗ ❚ ❚ ■ ❍ ❉ ❉ ❈❱❲ ❳ ❲❨ ❨ ◗ ❩ ❱ ◗ ■ ◗ ❴ ❴ ❍ ❴ ❡ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ q ❪ ❪ ❈ ❨ ◗ ❩ ❉ ❯ ❊ ❘ ❴ ❋ ◗ ◆ ❍ ▼ ❘ ❉ ▲▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❈ ❈ ❯ ◆ ❋ ▼ ❋ ◗ ❴ ❋ ▼ ❋ ❣ ❍ ❉ ❍ ■ ❏ ❍ ■ ❈❱❲ ❳ ❲❨ ❜ ▲
▲ ❏ ❦ ❘ ❖ ❖ ❍ ■ ❫ ❯ ❬ ❍ ♠ r ❪ ❪ ❪ ❈ ❫ ❣ ▼ ❘ ❴ ❚ ◆ ▼ ❋ ◆ ❍ ❍ ❚ ❋ ▼ ❉❍ ❋ ♣ ❈❱❲ ❳ ❲❨ ❜ ▲
  • ✟s
❊ ❯ ❋ ❦ ❘ ❖ ❖ ❍ ■ ❫ ❯ ❬ ❍ ♠ r ❪ ❪ ❪ ❈ ❫ ❣ ▼ ❘ ❴ ❚ ◆ ▼ ❋ ◆ ❍ ❍ ❚ ❋ ▼ ❉❍ ❋ ♣ ❈ ❈❱❲ ❳ ❲❨ ❥ ❯ ❉ ❋ ❍ ◆ t ❘ ❍ ❘ ❍ ❫ ❯ ❬ ❍ ❭ ❪ ❈ ❴ ❯ ❉ ❋ ❍ ◆ ✉ r ✈
■ ◗ ❊ ❍ ❋ ❍ ■ ❈ ❈❱❲ ❳ ❲❨ ❳ ▲
❥ ❯ ❊ ❯ ❋ ❡ ▼ ❘ ◆ ❋ ❭ ❪ ❪ ❪ ❪ ❈ ❨ ◗ ❩ ◆ ❘ ❊ ♥ ❍ ■ ▼ ❖ ■ ❍ ▲ ❯
❍ ◆ ❋ ❉ ❖ ▼ ■ ▼ ◆ ❍ ❈ ❈ ❨ ❲ ❞❥ ❝ ❳ ❛ ❨ ❉ ❍ ❉ ❉ ❯ ▼ ◆❑ ❨ ❯ ◆❯ ❊ ❘ ❊✇ ❭ ❪ ❪ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-a

slide-21
SLIDE 21
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈❱❲ ❳ ❲❨ ❦ ❯ ◆ ❚ ❱ ▼ ■ ❋ r ❵ ❈ ❦ ❯ ◆ ❚ ❯ ◆ ❙
■ ❋ ❈❱❲ ❳ ❲❨ ❦ ❯ ◆ ❚ ❲ ❚ ❚ ■ ❍ ❉ ❉ ① ❪ ❑ ❪ ❑ ❪ ❑ ❪ ② ❈ ❦ ❯ ◆ ❚ ❯ ◆ ❙ ◗ ❚ ❚ ■ ❍ ❉ ❉ P ❖ ▼ ■ ❊ ❘ ❴ ❋ ❯ ❣ ▼ ❊ ❍ ■ ❉ ❑ ❑ ❈❱❲ ❳ ❲❨ ❦ ❯ ◆ ❚ ❲ ❚ ❚ ■ ❍ ❉ ❉ ① ❞ ❱ ❏③ ❑ ❪ ✇ ✇ ❪ ② ❈ ◗ ◆ ❚ ❣ ❍ ■ ❍ ❯ ❉ ❖ ▼ ■ ❞ ❱ ❏③ P ④ ❛ ❫ ❱❲ ❡ ❢ ❫ ♣ ❈ ❈ ❢ ◆ ◗ ♥ ❴ ❍ ❉ ▼ ❖ ❉▼ ❊ ❍ ▲▼ ❊ ❊ ◗ ◆ ❚ ❉ ✇ ❱ ❲ ❳ ❲❨ ⑤ ❢ ❦ ⑥⑦ ▲ ❊ ❚ ❱ ❲ ❳ ❲❨ ❢ s ❱ ④ ▲ ❊ ❚ ❱ ❲ ❳ ❲❨ ⑧ ❳ ❝ ❧ ▲ ❊ ❚ ❱ ❲ ❳ ❲❨ ❍ ◆ ◗ ♥ ❴ ❍ P ■ ▼ ❘ ❋ ❍ ■ ❈ ❜ ❣ ❯ ❉ ❯ ❉ ◗ ❉❍ ▲ ❘ ■ ❯ ❋ ♦ ❚ ❍ ▲ ❯ ❉ ❯ ▼ ◆ ❖ ▼ ■ ♦ ▼ ❘ ❑ ❈ ❈ ❜ ❣ ❯ ❉ ❯ ❉ ◆ ❍ ❍❚ ❍ ❚ ❖ ▼ ■ ❢ s ❱ ④ ⑨ ⑧ ❳ ❝ ❧ ◗ ◆ ❚ ❯ ◆ ❋ ❍ ■ ◗ ▲ ❋ ❯ ❏ ❍ ❈ ❈
▼ ▲❍ ❉ ❉ ❯ ◆ ❙ ▼ ❖ ❨ ❲ ❞ ❥ ❝ ❳ ❛ ❨ ◗ ◆ ❚ ❳ ❡ ❱ ❜ ❜ ❛ ◗ ❚ ❚ ■ ❍ ❉ ❉ ❍ ❉ ❑ ❈ ❈⑩ ▼❶ ❍ ❏ ❍ ■ ❯ ❋ ◗ ❴ ❉▼ ❊ ◗ ♦ ◗ ❴ ❴ ▼❶ ❍ ❩ ❋ ❍ ■ ◆ ◗ ❴ ❘ ❉❍ ■ ❍ ◆ ❋ ■ ◗ ◆ ▲❍ ❈ ❈ ❋ ▼ ❷ ❨ ◗ ❯ ❴ ❍ ■ ■ ▼ ❘ ❋ ❍ ■ ❉ ❣ ❍ ❴ ❴ ❍ ◆ ❏ ❯ ■ ▼ ◆ ❊ ❍ ◆ ❋ ❶ ❯ ❋ ❣ ❉ ❘ ❯ ❋ ◗ ♥ ❴ ♦ ❈ ❈
■ ❏ ❍ ■ ❋ ❯ ◆
❋ ❸ ❯ ❖ ❹ ❘ ▼ ❋ ◗ ❋ ❯ ▼ ◆ ■ ❘ ❴ ❍ ❉ ◗ ■ ❍ ♥ ■ ▼ ❺ ❍ ◆ ❯ ◆ ❈ ❈ ❋ ❣ ❍ ❉ ▲ ■ ❯
❉ ❑ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-b

slide-22
SLIDE 22
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❱ ❲ ❳ ❲❨ ❉ ❊ ❋
  • P
◗❘ ❋ ❣ ❈ ❍ ◆ ◗ ♥ ❴ ❍ ❯ ❖ ♦ ▼ ❘ ❶ ◗ ◆ ❋ ❋ ▼ ◗ ❴ ❴ ▼❶ ❫ ❨ ❜ ❱ ❋ ▼ ◗❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❍ ❈ ❈ ❶ ❯ ❋ ❣ ❋ ❣ ❍ ❚ ❍ ❖ ◗❘ ❴ ❋ ▲▼ ❚ ❍ ◗ ❙ ◗ ❯ ◆ ❉ ❋ ❉ ♦ ❉ ❋ ❍ ❊ ⑨ ❍ ❋ ▲ ⑨
❉ ❉ ❶ ❚ ❈ ❈ ✉ ▼ ■ ❶ ❣ ◗ ❋ ❍ ❏ ❍ ■ ❉▼ ❘ ■ ▲❍ ❙ ❍ ❋
◆ ◗ ❊ ✉ ✈ ❘ ❉❍ ❉ ❖ ▼ ■ ❯ ❋ ❑ ❑ ✈ ❈ ❱ ❲ ❳ ❲❨ ❲ ⑥ ❜ ⑩ P ❥ ❛ ⑦ ❞ ④ P ◗ ❴ ❉ ▼ P ❶ ❯ ❋ ❣ ▼ ❘ ❋ P ❜ ❥ ❫ ❈ ❈ ❢ ◆ ◗ ♥ ❴ ❍ ❸ ❯ ❖ ❋ ❣ ❍❼❻ ❲ ⑥ ❜ ⑩ ❥ ❛ ⑦ ❞ ④ ❻ ❯ ❉ ❋ ▼ ♥ ❍ ◗ ❴ ❴ ▼❶ ❍❚ ❋ ▼ ❈ ❈ ♥ ❍ ❘ ❉❍❚ ❶ ❯ ❋ ❣ ▼ ❘ ❋ ■ ❘ ◆ ◆ ❯ ◆ ❙ ❘ ◆ ❚ ❍ ■ ❫ ❫ ❥ ⑨ ❜ ❥ ❫ ❉❍ ▲ ❘ ■❯ ❋ ♦ ❈ ❈ ❍ ◆ ❏ ❍ ❴ ▼
❑ ❈ ❈❱❲ ❳ ❲❨ ❨ ❫ ❲ P ❊ ▼ ❚ ❍ ❈ ❨ ❍ ❉ ❉ ◗ ❙ ❍ ❫❘ ♥ ❊ ❯ ❉ ❉ ❯ ▼ ◆ ❲ ❙ ❍ ◆ ❋ ❊ ▼❚ ❍ ❑ ❳ ❍ ❹ ❘ ❯ ■ ❍ ❈ ❈ ❉ ❘ ▲ ▲❍ ❉ ❉ ❖ ❘ ❴ ❘ ❉❍ ■ ◗ ❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❯ ▼ ◆ ❚ ❘ ■ ❯ ◆ ❙ ❫ ❨ ❜ ❱ ❈ ❈ ❉ ❍ ❉ ❉ ❯ ▼ ◆ ❉ ❯ ◆❯ ❋ ❯ ◗ ❋ ❍ ❚ ❖ ■ ▼ ❊ ▼ ❘ ❋ ❉ ❯ ❚ ❍ ▼ ❖ ❋ ❣ ❍ ❋ ■ ❘ ❉ ❋ ❍ ❚ ❈ ❈ ◆ ❍ ❋ ❶ ▼ ■ ❺ ❉ ▼ ■ ❋ ❣ ❍ ◆ ❍ ❋ ❶ ▼ ■ ❺ ❉❶ ❯ ❋ ❣ ■ ❍ ❴ ◗ ♦ ❯ ◆ ❙ ❍ ◆ ◗ ♥ ❴ ❍ ❚ ❈ ❈ ✉ ❉❍ ❍❼❻ ❖ ❘ ❴ ❴ ❋ ■ ❘ ❉ ❋ ◆ ❍ ❋ ❻ ◗ ◆ ❚ ❻ ■ ❍ ❴ ◗ ♦ ▲ ❘ ❉ ❋ ◆ ❍ ❋ ❻ ❯ ◆ ❈ ❈ ❉ ❊ ❋
  • P
❴ ❯ ▲ ♦ ❑ ❉ ■ ▲ ❖ ❯ ❴ ❍ ✈ ❑ ❈ ❱ ❲ ❳ ❲❨ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♥ ♦ ③ ❪ ❈ ❈ ❳ ❝ ❡ r q ❵ r ❚ ❍ ❖ ❯ ◆ ❍ ❚ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♥ ♦ ❊ ◗ ▲ ❣ ❯ ◆ ❍ ■ ♦ ❑ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-c

slide-23
SLIDE 23
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈❱❲ ❳ ❲❨ ❫ ❨ ❜ ❱ P ◗❘ ❋ ❣ P
❋ ❣ ⑨ ❋ ▼ ⑨
▼ ❙ ■ ◗ ❊ ❈ ❈ ❢ ❩ ❋ ❍ ■ ◆ ◗ ❴ ◗❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❯ ▼ ◆
▼ ❙ ■ ◗ ❊ ❑ ❜ ❣ ❍ ❈ ❈ ◗ ❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ▼ ■ ❉ ❣ ▼ ❘ ❴ ❚ ■ ❍ ◗ ❚ ◗ ❘ ❉❍ ■ ◆ ◗ ❊ ❍ ❖ ■ ▼ ❊ ❈ ❈ ▲ ▼ ❊ ❊ ◗ ◆ ❚ ❴ ❯ ◆ ❍ ◗ ◆ ❚ ◗
❉ ❉ ❶ ▼ ■ ❚ ❖ ■ ▼ ❊ ❉ ❋ ◗ ◆ ❚ ◗ ■ ❚ ❯ ◆
❋ ❑ ❈ ❈ ❢ ❩ ❯ ❋ ❉ ❋ ◗ ❋ ❘ ❉ ❪ ❊ ❍ ◗ ◆ ❉ ❉ ❘ ▲ ▲❍ ❉ ❉ ❖ ❘ ❴ ◗ ❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❯ ▼ ◆❑ ❈ ❈ ⑤ ❯ ❉ ◗ ♥ ❴ ❍ ■ ❉ ▼ ❖ ❉▼ ❊ ❍ ❖ ◗ ▲ ❯ ❴ ❯ ❋ ♦ ◗ ❚ ❏ ❍ ■ ❋ ❯ ❉ ❍ ❊ ❍ ◆ ❋ ❉ ❈❱❲ ❳ ❲❨ ④ ▼ ❢⑩ ❥ ❛ ❈❱❲ ❳ ❲❨ ④ ▼ ❱ ❞ ❱ ❢ ❥ ❞ ④ ❞ ④ ⑦ ❈❱❲ ❳ ❲❨ ④ ▼ q ❦❞ ❜ ❨ ❞ ❨ ❢ ❱ ❲ ❳ ❲❨ ④ ▼ ❡ ⑩ ⑥ ④ ✐ ❞ ④ ⑦ ❈❱❲ ❳ ❲❨ ④ ▼ ⑤ ❫ ④ ❈❱❲ ❳ ❲❨ ④ ▼ ❢ ❜ ❳ ④ ❱ ❲ ❳ ❲❨ ◆ ▼ P ❊ ❘ ❴ ❋ ❯ ❴ ❯ ◆ ❍ P ■ ❍
❯ ❍ ❉ ❈ ❍ ❩ ▲❍
❋ ▼ ❢ ⑩ ❥ ❛ ✉ ❦ ❴ ▼ ▼ ❚ ♦ ❨ ❽ ❳ ❝ ❡ q r ❭ ⑨ ❲
❏ ❯ ▼ ❴ ◗ ❋ ▼ ■ ❉ ✈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-d

slide-24
SLIDE 24
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈ ⑩ ⑤ ❳ r r ❪ ❊ ❍ ❋ ◗ ❋ ◗ ❙ ❉ ✇ ❈ ❾ ❾ P P ❿ ❾ ❿ ▲ ❣ ◗ ■ ◗ ▲ ❋ ❍ ■ ❈ ❾ ⑩ P P ❫ ❫ P ➀ ❊ ♦ ❣ ▼ ❉ ❋ ◆ ◗ ❊ ❍ ❈ ❾ ❞ P P ❿ ➁ ❞ ⑤ ❢ ④ ❜ ❿ ❯ ❖ ❿ ❯ ❚ ❍ ◆ ❋ ❖ ❴ ❙ ❿ ❯ ❉ ❉❍ ❋ ❈ ❾ ⑧ P P ⑧ ❍ ■ ❉ ❯ ▼ ◆ ④ ❘ ❊ ♥ ❈ ❾ ❜ P P ▲ ❘ ■ ❋ ❯ ❊ ❍ ❉ ❋ ■ ❯ ◆ ❙ ❈ ❾ s P P ❩ ❴ ◗ ❋ ❍ ❴ ◗ ◆ ❙
■ ◗ ❊ ❍ ❋ ❍ ■ ❈ ❈❱❲ ❳ ❲❨ ❣ ❚ ■ r r ❪ ❾ ⑩ ❷ ❨ ◗ ❯ ❴ ❍ ■ ❢ ❫ ❨ ❜ ❱ P ❉ ❍ ■ ❏ ❍ ■ ❾ ⑧ ■ ❘ ◆ ◆ ❯ ◆ ❙ ◗ ❋ ❧ ▼ ♦ ▼ ❚ ♦ ◆ ❍ ❱ ■ ▼
❴ ❉ ❯ ▼ ◆ ❞ ◆ ▲ ❈❱❲ ❳ ❲❨ ❣ ❚ ■ r r ❪ ❾ ⑩ ❢ ❫ ❨ ❜ ❱ ✉ ④ ❛ ⑥ ❡ ❢ ✈ ✉ ④ ❛ ⑥ ❦ ❢ ✈ ▼ ❘ ■ ❴ ▼ ▲ ◗ ❴ ❋ ❯ ❊ ❍ ❯ ❉ ◆ ▼❶ ❾ ❜ ❈ ❈ ④ ▼ ❋ ❍ ◗ ♥ ▼ ❏ ❍ ❋ ❣ ❍❼❻ ❢ ❫ ❨ ❜ ❱ ❻ ❶ ▼ ■ ❚ ❉ ◗ ■ ❍
❍ ❉❍ ◆ ❋ ♥ ❍ ▲ ◗❘ ❉❍ ➂ ❉ ▼ ❊ ❍ ➂ ❨ ❜ ❲ ❉ ♦ ❉ ❋ ❍ ❊ ❉ ❶ ▼ ◆ ❿ ❋ ❈ ❚ ▼ ❢⑩ ❥ ❛ ❙ ■ ❍ ❍ ❋ ❯ ◆ ❙ ❸ ❘ ◆ ❴ ❍ ❉ ❉ ❋ ❣ ❍ ♦ ❉❍ ❍ ❻ ❢ ❫ ❨ ❜ ❱ ❻ P ◗ ❙ ◗ ❯ ◆ ❉ ❋ ❳ ❝ ❡ ❭ q ③➃
■ ❋ ➄ ❑ ❈ ❻ ❢ ⑩ ❥ ❛ ❯ ❉ ❋ ▼ ♥ ❍ ❚ ▼ ◆ ❍ ♥ ❴ ❯ ◆ ❚ ❴ ♦ ❸ ❉ ❍ ■ ❏ ❍ ■ ■ ❍ ❉
◆ ❉❍ ❉ ◗ ■ ❍ ◆ ▼ ❋ ❋ ▼ ♥ ❍ ❉ ❋ ❘ ❚ ❯ ❍ ❚ ❖ ▼ ■ ❈ ◗ ◆ ♦
❉ ❉ ❯ ♥ ❴ ❍ ❿ ❢ ❫ ❨ ❜ ❱ ❿ ❺ ❍ ♦ ❶ ▼ ■ ❚ ♣ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-e

slide-25
SLIDE 25
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❱ ❲ ❳ ❲❨ ❣ ❍ ❴
  • P
P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
❣ ❯ ❉ ❊ ◗ ❯ ❴ P ❉❍ ■ ❏ ❍ ■ ❯ ❉ ◗ ❋ ❧ ▼ ♦ ▼ ❚ ♦ ◆ ❍ ❱ ■ ▼
❴ ❉ ❯ ▼ ◆ ❞ ◆ ▲ ❑ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
  • ❛❘
■ ❋ ❍ ❴ ❍
▼ ◆ ❍ ◆ ❘ ❊ ♥ ❍ ■ ❯ ❉ ✇ ➁ ❭ P r ♠ ➄ P ❵ ③➅ P q ➃ ❪ ❪ ❸ ◗ ◆ ❚ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
❍ ❴ ❍ ❖ ◗ ❩ ◆ ❘ ❊ ♥ ❍ ■ ❯ ❉ ✇ ➁ ❭ P r ♠ ➄ P ❵ ③➅ P q ➃ ➃ ➃ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
  • ❛❘
■ ♥ ❘ ❉ ❯ ◆ ❍ ❉ ❉ P ❣ ▼ ❘ ■ ❉ ◗ ■ ❍ ❨ ▼ ◆ P ❝ ■ ❯ ✇ ❪ q ❪ ❪ P ❭ ➅ ❪ ❪ ✉ ❜ ❯ ❊ ❍ ❬ ▼ ◆ ❍ ✇ P ❪ ➅ ❪ ❪ ✈ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
❲ ❳ ❲❨ ❣ ❍ ❴
  • t
❘ ❍ ❉ ❋ ❯ ▼ ◆ ❉ ■ ❍ ❙ ◗ ■ ❚ ❯ ◆ ❙ ▼ ❘ ■ ❍ ❊ ◗ ❯ ❴ ❉ ❍ ■ ❏ ❯ ▲ ❍ ❉ ❣ ▼ ❘ ❴ ❚ ♥ ❍ ❉❍ ◆ ❋ ❏ ❯ ◗ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
❊ ◗ ❯ ❴ ❋ ▼ ◗ ❚ ❚ ■ ❍ ❉ ❉ ➆
❉ ❋ ❊ ◗ ❉ ❋ ❍ ■ ➇ ❛ ⑥ ❳ ⑤ ❛ ❨ ❲ ❞ ④ ➀ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
■ ❋ ❉ ◗ ♥ ▼ ❘ ❋ ◗ ♥ ❘ ❉❍ ◗ ■ ❍ ❋ ▼ ♥ ❍ ❉ ❍ ◆ ❋ ❋ ▼ ✇ ➆ ◗ ♥ ❘ ❉❍ ➇ ❛ ⑥ ❳ ⑤ ❛ ❨ ❲ ❞ ④ ➀ ❱ ❲ ❳ ❲❨ ❣ ❍ ❴
  • P
P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ❈ ❈ ⑥ ◆ ▲▼ ❊ ❊ ❍ ◆ ❋ ❖ ▼ ❴ ❴ ▼❶ ❯ ◆ ❙ ❖ ▼ ■ ◆ ▼ ❋ ❋ ▼ ❉ ❋ ■ ❯
◆ ▲▼ ❊ ❯ ◆ ❙ ◗ ❚ ❚ ■ ❍ ❉ ❉❍ ❉ ▼ ❖ ❖ ▼ ■ ❊ ◗ ❋ ✇ ❈ ➆ ➇ ◗ ◗ ❸ ➇ ♥ ♥ ✇ ▲ ▲ ➇ ❚ ❚ ➀ ❯ ◆ ❋ ▼ ◆ ▼ ◆ P ❉▼ ❘ ■ ▲ ❍ P ■ ▼ ❘ ❋ ❍ ❚ ♥ ◗ ❉❍ ❖ ▼ ■ ❊✇ ➆ ▲ ▲ ➇ ❚ ❚ ➀ ❈ ❈❱❲ ❳ ❲❨ ◗ ❴ ❴ ▼❶ ❉▼ ❘ ■ ▲❍ ■ ▼ ❘ ❋ ❍ ❈ ⑤ ❛ ④ ❿ ❜ ❢ ④ ❲ ❦ ❥ ❢ ⑥ ④ ❥ ❢ ❫ ❫ ❧ ❛ ⑥ ⑥ ❫ ❢ ❳ ❛ ⑥ ❜ ❢ ❳ ❦ ❲ ❫ ❢ ⑤ ❈ ❈ ❱ ❛ ❥ ❞ ❡ ❧ ❲ ④ ❲ ❥ ❧ ❫ ❞ ❫ ♣ ❈ ❈ ❜ ❣ ❍
❴ ❯ ▲ ♦ ❚ ◗ ❋ ◗ ♥ ◗ ❉❍ ✇ ✉ ④ ❛ ❜ ❢ ✇ ❫ ❍ ❍ ❿ ❊ ◗ ❺ ❍ ❚ ♥ ❿ ❖ ▼ ■ ❯ ❋ ❉❚ ❍ ❖ ◗ ❘ ❴ ❋ ❉ ❘ ❖ ❖ ❯ ❩ ❍ ❉ ♣ ✈ ❈ ❱ ❲ ❳ ❲❨
❴ ❯ ▲ ♦ ❚ ♥ ♥ ❋ ■ ❍ ❍ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❚ ♥ ⑨ ❉ ❊ ❋
  • P
❴ ❯ ▲ ♦ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-f

slide-26
SLIDE 26
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈❱❲ ❳ ❲❨ ❋ ◗ ■
❋ ❪ ❪ ❈ ④ ▼❼❻ ❋ ◗ ■
❋ ❻ ❖ ▼ ■ ➄ s s ⑨ ❵ s s ■ ❍
♦ ▲▼ ❚ ❍ ❉ ❈❱❲ ❳ ❲❨ ❋ ◗ ■
❋ r ❪ r ❈ ❞ ◆ ❯ ❋ ❯ ◗ ❴ ❚ ❍ ❴ ◗ ♦ ✇ r ❪ ❉❍ ▲ ❉ ❸ ◆ ❍ ❩ ❋➉➈
❍ ❏ ➁ ✉
❍ ❏ ➂ r ✈ ❈ ❈ ❜ ❥ ❫ ❏ ❭ ⑨ ❫ ❫ ❥ ❏ ① r ♠ ②
■ ◗ ❊ ❍ ❋ ❍ ■ ❉ ❤ ◗ ❴ ❴ ❊ ❘ ❉ ❋ ♥ ❍ ❘ ❉ ❍ ❚ ❖ ▼ ■ ❋ ❣ ❍ ❉ ♦ ❉ ❋ ❍ ❊ ❋ ▼ ❶ ▼ ■ ❺ ♣ ❈ ❈ ❫ ❍ ❍ ❣ ❋ ❋
⑨ ⑨ ❶ ❶ ❶ ❑ ◗ ❍ ❋ ❑ ❋ ❘ P ▲ ▼ ❋ ❋ ♥ ❘ ❉ ❑ ❚ ❍ ⑨
■ ❉▼ ◆ ❍ ◆ ⑨ ➊ ◗ ❍ ◆ ❯ ▲ ❺ ❍ ⑨
❯ ❩ ❋ ❴ ❉ ⑨ ❚ ▼ ▲ ⑨ ❉❍ ❋ ❘
❣ ❋ ❊ ❴ ❈ ❱ ❲ ❳ ❲❨ ❘ ❉❍ P ❋ ❴ ❉ ❱ ❲ ❳ ❲❨ ❋ ❴ ❉ P ❡ ❲ ❖ ❯ ❴ ❍ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❚ ♥ ⑨ ❉ ❊ ❋
❍ ■ ❏ ❍ ■ P ❡ ❲ ▲❍ ■ ❋ ❑
❊ ❱ ❲ ❳ ❲❨ ❋ ❴ ❉ P ▲❍ ■ ❋ P ❖ ❯ ❴ ❍ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❚ ♥ ⑨ ❉ ❊ ❋
❍ ■ ❏ ❍ ■ P ▲❍ ■ ❋ ❑
❊ ❱ ❲ ❳ ❲❨ ❋ ❴ ❉ P ❺ ❍ ♦ P ❖ ❯ ❴ ❍ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❚ ♥ ⑨ ❉ ❊ ❋
❍ ■ ❏ ❍ ■ P ❺ ❍ ♦ ❑
❊ ❈ ❈ ❞ ❖ ❉ ♦ ❉ ❋ ❍ ❊ ❚ ❍ ❖ ◗❘ ❴ ❋ ❫ ❫ ❥ P ❉❍ ❉ ❉ ❯ ▼ ◆ P ▲ ◗ ▲ ❣ ❍ ❯ ❉ ❋ ▼ ♥ ❍ ❘ ❉❍❚ ➋ ❱ ❲ ❳ ❲❨ ❋ ❴ ❉ P ❘ ❉❍ P ❉ ▲ ◗ ▲ ❣ ❍ ❱ ❲ ❳ ❲❨ ❋ ❴ ❉ P ❉ ▲ ◗ ▲ ❣ ❍ P ❋ ❯ ❊ ❍ ▼ ❘ ❋ ♠ ③ ❪ ❪ ❈ ✉ ▲ ◗ ▲ ❣ ❍ ❋ ❯ ❊ ❍ ▼ ❘ ❋ ❯ ◆ ❉ ❍ ▲▼ ◆ ❚ ❉ ✈ ❈ ❈ ❜ ❣ ❍ ◆ ❉ ▼ ❊ ❍ ❖ ❘ ❋ ❣ ❍ ■ ❋ ❣ ▼ ❘ ❙ ❣ ❉ ❋ ❣ ◗ ❋ ❊ ◗ ♦ ❊ ◗ ❋ ❍ ■ ❯ ◗ ❴ ❯ ❬ ❍ ❉▼ ❊ ❍ ❋ ❯ ❊ ❍ ❑ ❑ ❈❱❲ ❳ ❲❨ ❋ ❴ ❉ P ❴ ▼ ❙ ❴ ❍ ❏ ❍ ❴ ❪ ❈❱❲ ❳ ❲❨ ❋ ❴ ❉ P ▲ ▲❍ ■ ❋ P ❏ ❚ ❪ ❈❱❲ ❳ ❲❨ ❋ ❴ ❉ P ◗ ❉ ❺ P ▲ ❍ ■ ❋ ❪ ❈❱❲ ❳ ❲❨ ❋ ❴ ❉ P ■ ❍ ❹ ❘ ❯ ■ ❍ P ▲❍ ■ ❋ ❪ ❈ ❈ ❱❲ ❳ ❲ ❨ ❋ ❴ ❉ P ❡ ❲
❋ ❣ ❑ ❑ ❑ ✉ ❉▼ ❊ ❍❶ ❣ ❍ ◆ ✇ ❶ ◗ ♦ ❉ ❋ ▼ ❏ ❍ ■ ❯ ❖ ♦ ▲ ❴ ❯ ❍ ◆ ❋ ❿ ❉ ▲ ❍ ■ ❋ ❯ ❖ ❯ ▲ ◗ ❋ ❍ ❉ ✈ ❈ ❈ ❱❲ ❳ ❲ ❨ ❋ ❴ ❉ P ❍ ◆ ❖ ▼ ■ ▲❍ P ❋ ❴ ❉ ❭ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-g

slide-27
SLIDE 27
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈ ❈ ❢ ❴ ❍ ❊ ❍ ◆ ❋ ❉ ❋ ▼ ♥ ❍ ◗ ❚ ❚ ❍ ❚ ❯ ◆ ❋ ▼ ❻ ❳ ❍ ▲ ❍ ❯ ❏ ❍ ❚ ✇➌❻ ❣ ❍ ◗ ❚ ❍ ■ ❿ ❉ ❯ ◆ ❯ ❋ ❯ ◗ ❴ ▲ ▼ ❊ ❊ ❍ ◆ ❋
■ ❋ ✇ ❈ ❱ ❲ ❳ ❲❨ ■ ▲ ❏ ❚ P ❯ ❚ ❍ ◆ ❋ ❈ ❜ ❣ ❍ ❯ ❚ ❍ ◆ ❋ ❴ ▼ ▼ ❺ ❘
❍ ❉ ❘ ❴ ❋ ✉ ▼ ■ ❍ ❏ ❍ ◆ ◗ ❚ ❊ ❯ ❋ ❋ ❯ ◆ ❙ ❯ ❋ ✈ ❱ ❲ ❳ ❲❨ ■ ▲ ❏ ❚ P ❶ ❣ ▼ ❉▼ ◆ ❈ ❥ ❯ ❺ ❍❶ ❯ ❉❍ ❖ ▼ ■ ❻ ❶ ❣ ▼ ❉▼ ◆➌❻ ❱ ❲ ❳ ❲❨ ■ ▲ ❏ ❚ P ◗❘ ❋ ❣ P ❘ ❉❍ ■ ❈ ❲ ❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❍ ❚ ⑥ ❉❍ ■ ◆ ◗ ❊ ❍ ❱ ❲ ❳ ❲❨ ■ ▲ ❏ ❚ P ❋ ❴ ❉ P ❊ ▼ ❚ ❍ ❈ ❡ ❯
❍ ■ ❸ ▼ ■ ◆ ▼ ❋ ❱ ❲ ❳ ❲❨ ■ ▲ ❏ ❚ P ❋ ❴ ❉ P ▲ ▲❍ ■ ❋ ❈ ❡ ❴ ❯ ❍ ◆ ❋ ❡ ❍ ■ ❋ ❯ ❖ ❯ ▲ ◗ ❋ ❍ ■ ❍ ❖ ❍ ■ ❍ ◆ ▲ ❍ ❱ ❲ ❳ ❲❨ ❍ ❋ ■ ◆ P ▲ ❴ ❘ ❉ ❋ ❍ ■ ❴ ▼ ▲ ◗ ❴ ❣ ▼ ❉ ❋ ❍ ❋ ■ ◆ ❬ ❬ ❢ ❜ ❳ ④ ❬ ❬ ❱ ❲ ❳ ❲❨ ❍ ❋ ■ ◆ P ▲ ❴ ❘ ❉ ❋ ❍ ■ ❯
  • ❏③
P ❴ ▼ ▲ ◗ ❴ ❣ ▼ ❉ ❋ ❍ ❋ ■ ◆ ❬ ❬ ❢ ❜ ❳ ④ ❬ ❬ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-h

slide-28
SLIDE 28
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“smtpserver.conf”

❈ ❈ ❈ ⑩ ❢ ❥ ❛ ⑨ ❢ ⑩ ❥ ❛ P
❋ ❋ ❍ ■ ◆ ❉ ❋ ♦ ❴ ❍ P ❖ ❴ ◗ ❙ ❉ ✉ ❳ ❍ ❊ ❍ ❊ ♥ ❍ ■ ✇ ❿ ❖ ❋ ❏ ❍ ❿ ❉❍ ❋ ◆ ❍ ❍ ❚ ❉ ❍ ◆ ◗ ♥ ❴ ❍ P ■ ▼ ❘ ❋ ❍ ■ ♣ ✈ ❈ ① ❊ ◗ ❩ ❴ ▼ ◗ ❚ ◗ ❏ ❙ ② ❈ ❴ ▼ ▲ ◗ ❴ ❣ ▼ ❉ ❋ ➃ ➃ ➃ ❖ ❋ ❏ ❍ ❳ ❉ ▼ ❊ ❍ ❑ ❣ ▼ ❉ ❋ ❑ ❚ ▼ ❊ ◗ ❯ ◆ ➃ ➃ ➃ ♣ ④ ❛ ❢ ❨ ❲ ❞ ❥ ❲ ❡ ❡ ❢ ❱ ❜ ❢ ⑤ ❝ ❳ ❛ ❨ ❧ ❛ ⑥ ❳ ❨ ❲ ❡ ⑩ ❞ ④ ❢ ❈ ❞ ❖ ❋ ❣ ❍ ❣ ▼ ❉ ❋
❍ ❉❍ ◆ ❋ ❉ ❯ ❋ ❉❍ ❴ ❖ ◗ ❉ ✇ ⑩ ❢ ❥ ❛ ① ❭ ❑ r ❑ ♠ ❑ ➄ ② ❸ ♥ ❍ ❴ ❍ ◆ ❯ ❍ ◆ ❋ ❋ ▼ ❯ ❋ ❑ ❑ ❈ ❜ ❣ ❍ ❉ ♦ ◆ ❋ ◗ ❩ ♥ ❍ ❴ ▼❶ ❯ ❉❚ ❘ ❍ ❋ ▼ ❋ ❣ ❍ ❉❍
❋ ❋ ❍ ■ ◆ ❉ ♥ ❍ ❯ ◆ ❙ ❫ ⑩ P ⑦ ❥ ❛ ❦ ❉ ❋ ♦ ❴ ❍
❋ ❋ ❍ ■ ◆ ❉ ❈ ❶ ❣ ❍ ■ ❍ ❋ ❣ ❍ ♥ ■ ◗ ▲ ❺ ❍ ❋ ❉ ◗ ■ ❍ ❉
▲ ❯ ◗ ❴ ▲ ❣ ◗ ■ ◗ ▲ ❋ ❍ ■ ❉ ❑ ➍ ① ➂ ➍ ② ➃ ➃ ➃ ❏ ❍ ❈ ❱ ❍ ■ ❚ ❍ ❖ ◗❘ ❴ ❋ ❚ ❍ ❊ ◗ ◆ ❋ ❉ ❋ ■ ❯ ▲ ❋ ❉ ♦ ◆ ❋ ◗ ▲ ❋ ❯ ▲ ◗ ❚ ❣ ❍ ■ ❍ ◆ ▲❍ ❸ ❯ ◆ ▲ ❴ ❘ ❚ ❯ ◆ ❙ ❖ ❘ ❴ ❴ ♦ ❈ ❹ ❘ ◗ ❴ ❯ ❖ ❯ ❍ ❚ ◗ ❚ ❚ ■ ❍ ❉ ❉❍ ❉ ❖ ▼ ■ ❨ ❲ ❞❥ ❝ ❳ ❛ ❨ ❸ ◗ ◆ ❚ ❳ ❡ ❱ ❜ ❜ ❛ ❑ ❜ ▼ ♥ ❍ ❴ ❍ ◆ ❯ ❍ ◆ ❋ ❈ ▼ ◆ ❋ ❣ ◗ ❋ ❚ ❍ ❋ ◗ ❯ ❴ ❸ ■ ❍ ❊ ▼ ❏ ❍ ❋ ❣ ❍❼❻ ❳ ❻ ❖ ■ ▼ ❊➌❻ ❏ ❍ ❳ ❻ ❉ ❋ ■ ❯ ◆ ❙ ♥ ❍ ❴ ▼❶ ✇ ➂ ➃ ➃ ➃ ❏ ❍ ❳ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-i

slide-29
SLIDE 29
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

smtpserver policy-db construction rules

At the end of this is actually the default boiler-plate file from the distribution pretty much as is. In addition to that, policy-builder.sh script adds a set of other things before policy filter is ready for use:

➎➏ ➐ ➑ ➒ ➓ ➔➣→ ➔↕↔ ➙ ➛ ➜ ➝➟➞ ➑ ➠ ➜ ➡➢ ➤➥ ↔ ➛ ➙ ➤ ➠ ➔ ➙ ➦ ➓ ➤ ➎➏ ➐ ➙ ↔ ➜ ➦ ➙ ➧ ➦ ➒ ➤➑ ➨➫➩ ➭ ➯ ➙ ↔ ➜ ➦ ➙ ➯ ➧ ➦ ➒ ➤➑ ➩ ➲ ➎➏ ➐ ➑ ➒ ➓ ➔➣→ ➔↕↔ ➙ ➛ ➜ ➝➟➞ ➠ ➤ ➙ ➦ ➝ ➨➫➩ ➭ ➯ ➳ ➵ ➙ ➙ ➯ ➠ ➛ ➸➺➢ ➓ ➑ ➩ ➲ ➎➏ ➐ ➑ ➒ ➓ ➔➣→ ➔↕↔ ➙ ➛ ➜ ➝➟➞ ➒ ➻ ➨➫➩ ➭ ➯ ➠ ➤ ➙ ➦ ➝ ➓ ➦ ➠ ➸ ➤ ➓ ➩ ➲ ➎➏ ➐ ➑ ➒ ➓ ➔➣→ ➔↕↔ ➙ ➛ ➜ ➝➟➞ ➑ ➔ ➦ ➒ ➨➫➩ ➭ ➯ ➥ ➵ ➙ ➼ ➯ ➒ ➦ ➛ ➙ ➩ ➲ ➎➏ ➐ ➑ ➒ ➓ ➔➣→ ➔↕↔ ➙ ➛ ➜ ➝➟➞ ➑ ➔ ➦ ➒ ➞ ➒ ➦ ➧ ➵ ➦ ➙ ➨➫➩ ➭ ➯ ➥ ➵ ➙ ➼ ➯ ➒ ➦ ➛ ➙ ➩ ➲

If you want, you can modify your boiler plate as well as your installed policy-builder.sh script. (Doing ’make install’ will overwrite policy-builder.sh, but not smtp-policy.src) See file “doc/guides/smtp-policy” for more info.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

18-j

slide-30
SLIDE 30
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router”

  • about the router program tasks
  • about router configuration mechanisms
  • about resource consumption, and its control
  • about the router script language
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

19

slide-31
SLIDE 31
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (2)

Tasks of the router subsystem are:

Picking tasks for processing from multiple input queues.

Producing analysis on what to do with given input addresses (i.e. “routing”).

Producing scheduler + transport agent control information regarding the message

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

20

slide-32
SLIDE 32
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (3)

Resource spenditure is limited at the router by having long-living processes han- dling lots and lots of email over long periods of time. The router processes are running as one taskmaster (“scheduler”), and a farm of

  • workers. The main input queue area can get more than one processing process,
  • thers get only one.

Each process aims to have as small memory footprint as possible, which is achieved with LISP-like memory management strategies inside the router.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

21

slide-33
SLIDE 33
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (4)

The router is configured with a script language which greatly resembles that of the

✷ ➽ ➾ ❂ ✷ ✽ ✿

a.k.a. The Shell. The router picks file “router.cf” from a well-known location, and continues then picking more configuration scripts in given order. Once all are loaded, the task sequencer starts to call “process” entrypoint with taskfile name as a parameter.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

22

slide-34
SLIDE 34
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (5)

The router script language looks very much like the

✷ ➽ ➾ ❂ ✷ ✽ ✿

script language added with a few odd quirks that mainly are due to having a desire to run ev- erything within one single process – apparent pipes are run stage at the time storing the intermediate results into memory resident buffers. System has a number of builtin functions including various database access mechanisms. The system has two extensions to

✷ ➽ ➾ ❂ ✷ ✽ ✿

: “ssift” and “tshift”, which are like “case”, but matched labels are regular expressions. The meaning of dot (.) in “ssift” is just any single character, while at “tshift” it is RFC-822 token.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

23

slide-35
SLIDE 35
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (6)

As the router scripts are quite complicated, average user will not like to poke things inside them. ZMailer has two (third on TODO list) configuration entries for facility selections, plus a set of files for local system identity setup. File “

✮ ➚➪ ✴ ➶ ✱ ➹ ➪ ➘ ✶ ✷

router.cf” points by default to file “

✷ ✼ ✻ ✾ ✷ ➴ ➷ ➾ ❁ ❃ ✾ ✹ ❂➬

” from which the local system identity should be found – if it does not exist, default values are attempted to be supplied. Same file contains also a list of transport protocols for external routing, and on TODO list there is similar variable for internal address analysis functions, that is, various “aliases”.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

24

slide-36
SLIDE 36
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “router” (7)

For making usage of various mapping databases somewhat simpler, a new fa- cility exists. It is called “dbases.conf”, and is located into “

✮ ➚➪ ✴ ➶ ➮ ➪ ➘ ✷ ❀ ➽ ✷

” direc-

  • tory. ZMailer management command “zmailer newdb” uses it to (re)generate the

databases.

❈ ➱ ❝ ❯ ❍ ❴ ❚ ❉ ✇ ❈ ➱ ■ ❍ ❴ ◗ ❋ ❯ ▼ ◆ P ◆ ◗ ❊ ❍ ❈ ➱ ❚ ♥ ❋ ♦
✉ ❸ ❉ ❘ ♥ ❋ ♦
✈ ❈ ➱ ❚ ♥
❯ ❏ ✃ ♦ ❯ ❍ ❴ ❚ ✃ ❏ ◗ ■ ◆ ◗ ❊ ❍ ❈ ➱ ◆ ❍ ❶ ❚ ♥ ✃ ▲ ▼ ❊
❴ ❍ ✃ ▼
❯ ▼ ◆ ❉ ✉ P ◗ ❖ ▼ ■ ◗ ❴ ❯ ◗ ❉❍ ❉ ♣ ✈ ❈ ➱ ❚ ♥ ❖ ❯ ❴ ❍ ✉ ▼ ■ ❻ P ❻ ✈ ❈ ➱ ❚ ♥ ❖ ❴ ◗ ❙ ❉ ✉ ▼ ■ ❻ P ❻ ✈ ❑ ❑ ❑ ❈ ➱ ◗ ❴ ❯ ◗ ❉❍ ❉ ❽ ⑤ ❦ ❜❧ ❱ ❢
❯ ❏ P ❴ ◗ ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ◗ ❴ ❯ ◗ ❉❍ ❉ P ❴ ❊ ❈ ◗ ❴ ❯ ◗ ❉ ❍ ❉ ❽ ⑤ ❦ ❜❧ ❱ ❢
❯ ❏ P ❴ ◗ ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ◗ ❴ ❯ ◗ ❉❍ ❉ P r P ❴ ❊ ❖ ❹ ❚ ◆ ◗ ❴ ❯ ◗ ❉❍ ❉ ❽ ⑤ ❦ ❜❧ ❱ ❢
❯ ❏ P ❴ ◗ ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ❖ ❹ ❚ ◆ ◗ ❴ ❯ ◗ ❉❍ ❉ P ❴ ❊ ■ ▼ ❘ ❋ ❍ ❉ ❚ ♥ ❽ ⑤ ❦ ❜❧ ❱ ❢ P P ❴ ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ■ ▼ ❘ ❋ ❍ ❉ P ❴ ❊ ❋ ❣ ❯ ❉ ❣ ▼ ❉ ❋ ❽ ⑤ ❦ ❜❧ ❱ ❢ P P ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ❴ ▼ ▲ ◗ ❴ ◆ ◗ ❊ ❍ ❉ P ❴ ❊ ❈ ❋ ❣ ❯ ❉ ❣ ▼ ❉ ❋ ♥ ❯ ◆ ❚ ❸ ❊ ❩ ❴ ▼ ▲ ◗ ❴ P P P P ❴ P ❉ r ❪ ❪ P ❍ r ❪ ❪ ❪ ❘ ❉❍ ■ ❚ ♥ ❽ ⑤ ❦ ❜❧ ❱ ❢ P P ❴ ◗ ❽ ❨ ❲ ❞ ❥ ⑧ ❲ ❳ ⑨ ❚ ♥ ⑨ ❘ ❉ ❍ ■ ❚ ♥ P ❴ ❊ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

25

slide-37
SLIDE 37
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler”

  • about scheduler role
  • about its communication with transport agents
  • about scheduler configuration
  • about resource controls
  • about “mailq” communication channel
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

26

slide-38
SLIDE 38
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler” (2)

The role of the scheduler in ZMailer is to be seriously parallelizing taskmaster to make sure all recipients are getting evenhanded handling, while still making sure that nobody gets to be a resource hog. The scheduler reads all message processing task descriptors from their spoolfiles, and places them into appropriate slots in the work-profile data-structures. Depending on the situation the scheduler will likely immediately upon new recipient destination reception to try to start delivery into there. Various resource usage limitation controls may post- pone such activities, though. (More of that latter.) The scheduler also collects diagnostics issued by the actual message delivery subprograms – the Transport Agents – and issues delivery report messages per RFC 1891-1984 specifications.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

27

slide-39
SLIDE 39
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler” (3)

The scheduler communicates with the transport agents via bi-directional chan- nel, which towards the TAs sends commands regarding which taskfile to pick, and what addresses to process. From the TAs to the scheduler there come status diagnostics. Usually permanent kind of diagnostics are stored into the transport-agent taskfile, and the scheduler is merely informed of what has been done. For temporary/transient kind of diagnostics, the entire diagnostic is sent from the TA to the scheduler, and stored into the scheduler memory (not into the taskfile!).

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

28

slide-40
SLIDE 40
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler” (4+)

  • about resource controls
  • about scheduler configuration

The scheduler has two configuration files:

  • scheduler.conf
  • scheduler.auth

First of which guides task pickup and resource allocations. Path for the second

  • ne is parametrized inside the first one.

The second file contains “mailq” service port access autentication data.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29

slide-41
SLIDE 41
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler.conf”

❈ ❈ ❫ ▲ ❣ ❍❚ ❘ ❴ ❍ ■ ▲▼ ◆ ❖ ❯ ❙ ❘ ■ ◗ ❋ ❯ ▼ ◆ ❖ ❯ ❴ ❍ ❈ ❈ ❜ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ■ ❍ ◗ ❚ ❉ ❋ ❣ ❯ ❉ ❖ ❯ ❴ ❍ ▼ ◆ ❉ ❋ ◗ ■ ❋ ❘
■ ❶ ❣ ❍ ◆ ❯ ❋ ■ ❍ ▲❍ ❯ ❏ ❍ ❉ ◗ ❫ ❞ ⑦ ⑥ ❫ ❳ ❭ ❉ ❯ ❙ ◆ ◗ ❴ ❈ ❈ ❢ ❏ ❍ ■ ♦ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ⑨ ❣ ▼ ❉ ❋ ▲ ▼ ❊ ♥ ❯ ◆ ◗ ❋ ❯ ▼ ◆ ❯ ◆ ■ ❍ ▲ ❯
❍ ◆ ❋ ◗ ❚ ❚ ■ ❍ ❉ ❉ ❍ ❉❶ ❯ ❴ ❴ ♥ ❍ ❉ ❯ ❖ ❋ ❍❚ ❋ ❣ ■ ▼ ❘ ❙ ❣ ❈ ❋ ❣ ❍ ▲ ❴ ◗❘ ❉ ❍ ❉ ❊ ◗ ❋ ▲ ❣ ❍ ❚ ❯ ◆ ❋ ❣ ❯ ❉ ❖ ❯ ❴ ❍ ❸
▲ ❺ ❯ ◆ ❙ ❘
■ ◗ ❊ ❍ ❋ ❍ ■ ❉ ❘ ◆ ❋ ❯ ❴ ◗ ▲ ❴ ◗ ❘ ❉❍ ❋ ❣ ◗ ❋ ❈ ❉
▲ ❯ ❖ ❯ ❍ ❉ ◗ ▲▼ ❊ ❊ ◗ ◆ ❚ ❑ ❢ ❏ ❍ ■ ♦ ❋ ❣ ❯ ◆ ❙ ❯ ❉ ❖ ■ ❍ ❍ P ❖ ▼ ■ ❊ ❶ ❯ ❋ ❣ ❋ ❣ ■ ❍ ❍ ■ ❍ ❹ ❘ ❯ ■ ❍ ❊ ❍ ◆ ❋ ❉ ✇ ❈ ❡ ❴ ◗❘ ❉❍ ❉ ✉ ❯ ❑ ❍ ❑ ❋ ❣ ❍ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ⑨ ❣ ▼ ❉ ❋
❋ ❋ ❍ ■ ◆ ✈ ❉ ❋ ◗ ■ ❋ ◗ ❋ ❋ ❣ ❍ ♥ ❍ ❙ ❯ ◆ ◆ ❯ ◆ ❙ ▼ ❖ ◗ ❴ ❯ ◆ ❍ ❑ ❈ ❡ ❴ ◗❘ ❉❍ ▲▼ ◆ ❋ ❍ ◆ ❋ ❉ ✉ ❯ ❑ ❍ ❑ ❋ ❣ ❍
■ ◗ ❊ ❍ ❋ ❍ ■ ❉ ✈ ❚ ▼ ◆ ❿ ❋ ❑ ❈ ❡ ▼ ❊
◆ ❍ ◆ ❋ ❉ ◗ ■ ❍ ❉❍
■ ◗ ❋ ❍ ❚ ♥ ♦ ❶ ❣ ❯ ❋ ❍ ❉
▲❍ ❑ ❈ ❈ ❐ ❯ ❋ ❣ ❯ ◆ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❑ ❑ ❑ ❻ ❉ ❋ ■ ❯ ◆ ❙ ❉ ❸ ❖ ▼ ❴ ❴ ▼❶ ❯ ◆ ❙ ❻ ❏ ◗ ■❯ ◗ ♥ ❴ ❍ ❉ ❻ ◗ ■ ❍ ❺ ◆ ▼❶ ◆ ✇ ❈ ❽ ❣ ▼ ❉ ❋ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❿ ❉ ❣ ▼ ❉ ❋ ❈ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❿ ❉ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❈ ❽❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ❷ ❢ ④ ⑧ ❏ ◗ ■ ❯ ◗ ♥ ❴ ❍ ❥ ❛ ⑦ ⑤ ❞ ❳ ✉ ◗ ❴ ❴ ❷ ❢ ④ ⑧ ❏ ◗ ■ ❯ ◗ ♥ ❴ ❍ ❉ ❉ ❘
■ ❋ ❍ ❚ ✈ ❈ ❈ ④ ❦ ♣ ❝ ▼ ■ ▲ ▼ ❊ ❊ ◗ ◆ ❚
❋ ❣ ❉ ❸ ❋ ❣ ❍❼❻ ▲ ❘ ■ ■ ❍ ◆ ❋ ❚ ❯ ■ ❍ ▲ ❋ ▼ ■ ♦ ❻ ❯ ❉ ❨ ❲ ❞❥ ❦❞ ④ ⑨ ❋ ◗ ❈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-a

slide-42
SLIDE 42
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ④ ▼ ❋ ❍ ❸ ❋ ❣ ❍ ■ ❍ ◗ ■ ❍ ❋ ❣ ■ ❍ ❍ ❺ ❯ ◆ ❚ ❉ ▼ ❖ ■ ❍ ❉▼ ❘ ■ ▲❍ P
▼ ❴ ❴ ❯ ❊ ❯ ❋ ◗ ❋ ❯ ▼ ◆
■ ◗ ❊ ❍ ❋ ❍ ■ ❉ ❈ ❶ ❣ ❯ ▲ ❣ ▲▼ ◆ ❋ ■ ▼ ❴ ❶ ❣ ❍ ◆ ◗ ❙ ❯ ❏ ❍ ◆ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➁ ❣ ▼ ❉ ❋
❯ ■ ✉ ❋ ❣ ■ ❍ ◗ ❚ ✈ ❯ ❉ ④ ❛ ❜ ❋ ◗ ❺ ❍ ◆ ❈ ❯ ◆ ❋ ▼
▼ ▲ ❍ ❉ ❉ ❯ ◆ ❙ ✇ ❈ ❈ ❊ ◗ ❩ ❋ ◗ ✇ ✉ ❫ ❍ ❋ ❯ ◆ ❻ ➂ ⑨ ➂ ❻ ▲ ❴ ◗❘ ❉❍ ✈ ❈ ⑦ ❥ ❛ ❦ ❲ ❥
■ ◗ ❊ ❍ ❋ ❍ ■ ❴ ❯ ❊ ❯ ❋ ❯ ◆ ❙ ❋ ❣ ❍ ◆ ❘ ❊ ♥ ❍ ■ ▼ ❖ ❋ ■ ◗ ◆ ❉
■ ❋ P ◗ ❙ ❍ ◆ ❋
▼ ▲❍ ❉ ❉❍ ❉ ❈ ❋ ❣ ◗ ❋ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ▲ ◗ ◆ ❣ ◗ ❏ ❍ ■ ❘ ◆ ◆ ❯ ◆ ❙ ◗ ❋ ❋ ❣ ❍ ❉ ◗ ❊ ❍ ❋ ❯ ❊ ❍ ❑ ❈ ❈ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ✇ ❈ ❫ ❍ ❴ ❍ ▲ ❋ ▼ ■ ▲ ❴ ◗❘ ❉ ❍ ❉
▲ ❯ ❖ ❯ ▲ ❏ ◗ ❴ ❘ ❍ ❴ ❯ ❊ ❯ ❋ ❯ ◆ ❙ ❣ ▼❶ ❊ ◗ ◆ ♦ ❋ ■ ◗ ◆ ❉
■ ❋ P ◗ ❙ ❍ ◆ ❋ ❈
▼ ▲❍ ❉ ❉❍ ❉ ▲ ◗ ◆ ♥ ❍ ■ ❘ ◆ ◆ ❯ ◆ ❙ ▼ ◆ ❶ ❣ ❯ ▲ ❣ ❋ ❣ ❍Ï❰ ❰ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❿ ❿
■ ❋ ❯ ❉ ❋ ❣ ❍ ❉ ◗ ❊ ❍ ❑ ❈ ❧ ▼ ❘ ❊ ◗ ♦ ❉
▲ ❯ ❖ ♦ ❚ ❯ ❉ P ❉ ❯ ❊ ❯ ❴ ◗ ■ ❏ ◗ ❴ ❘ ❍ ❉ ❖ ▼ ■ ❋ ❣ ❍ ❉❍ ◗ ❉❶ ❍ ❴ ❴ ❑ ❝ ▼ ■ ❍ ❩ ◗ ❊
❍ ❈ ♦ ▼ ❘ ❊ ◗ ♦ ❘ ❉❍ ❏ ◗ ❴ ❘ ❍ ❿ ❵ ❪ ❿ ❖ ▼ ■ ◗ ❴ ❴ ♦ ▼ ❘ ■ ❿ ❉ ❊ ❋
▲ ❣ ◗ ◆ ◆ ❍ ❴ ❍ ◆ ❋ ■ ❯ ❍ ❉ ❸ ❍ ❩ ▲❍
❈ ❋ ❣ ◗ ❋ ♦ ▼ ❘ ❶ ◗ ◆ ❋ ◗ ❴ ❶ ◗ ♦ ❉ ❋ ▼ ❙ ❘ ◗ ■ ◗ ◆ ❋ ❍ ❍ ◗ ❋ ❴ ❍ ◗ ❉ ❋ ❖ ❯ ❏ ❍ ❊ ▼ ■ ❍ ❖ ▼ ■ ♦ ▼ ❘ ■ ▼❶ ◆ ❈ ❚ ▼ ❊ ◗ ❯ ◆ ❚ ❍ ❴ ❯ ❏ ❍ ■❯ ❍ ❉ ❸ ◗ ◆ ❚ ❋ ❣ ❘ ❉ ❣ ◗ ❏ ❍ ✇ ❈ ❉ ❊ ❋
➂ ♦ ▼ ❘ ■❑ ❚ ▼ ❊ ◗ ❯ ◆ ❈ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❵ ❵ ❈ ❞ ❖ ❋ ❣ ❍ ❉ ❘ ❊ ▼ ❖ ◗ ❴ ❴ ❰ ❰ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❿ ❿ ❏ ◗ ❴ ❘ ❍ ❉ ❯ ◆ ❚ ❯ ❖ ❖ ❍ ■ ❍ ◆ ❋ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❉ ❍ ❩ ▲❍ ❍ ❚ ❉ ❈ ❋ ❣ ◗ ❋ ▼ ❖ ❰ ❰ ❊ ◗ ❩ ❋ ◗ ❿ ❿ ❸ ❋ ❣ ❍ ◆ ❰ ❰ ❊ ◗ ❩ ❋ ◗ ❿ ❿ ❏ ◗ ❴ ❘ ❍ ❶ ❯ ❴ ❴ ❴ ❯ ❊ ❯ ❋ ❋ ❣ ❍ ◗ ❊ ▼ ❘ ◆ ❋ ▼ ❖ ❶ ▼ ■ ❺ ❈ ❚ ▼ ◆ ❍ ❯ ◆ ❍ ❩ ❋ ■ ❍ ❊ ❍ ❴ ▼ ◗ ❚ ❉ ❯ ❋ ❘ ◗ ❋ ❯ ▼ ◆ ❉ ❑ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-b

slide-43
SLIDE 43
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ❊ ◗ ❩ ■ ❯ ◆ ❙ ✇ ❈ ❜ ❣ ❯ ❉ ❴ ❯ ❊ ❯ ❋ ❉ ❋ ❣ ❍ ◆ ❘ ❊ ♥ ❍ ■ ▼ ❖
■ ◗ ❴ ❴ ❍ ❴ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋ ❉ ❶ ❯ ❋ ❣ ❯ ◆ ❍ ◗ ▲ ❣ ❈ ❉❍ ❴ ❍ ▲ ❋ ▼ ■ ❚ ❍ ❖ ❯ ◆❯ ❋ ❯ ▼ ◆ ❑ ❜ ❣ ❯ ❉ ❚ ❍ ❖ ❯ ◆ ❍❚ ❋ ❣ ❍ ❉ ❯ ❬ ❍ ▼ ❖ ❋ ❣ ❍ ❱ ❛ ❛ ❥ ▼ ❖ ❈ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋
▼ ▲❍ ❉ ❉❍ ❉ ◗ ❏ ◗ ❯ ❴ ◗ ♥ ❴ ❍ ❋ ▼
▼ ▲❍ ❉ ❉ ❯ ◆ ❙ ❋ ❣ ❍ ❉❍ ❴ ❍ ▲ ❋ ▼ ■ ❈ ▲ ❴ ◗ ❘ ❉❍ ❊ ◗ ❋ ▲ ❣ ❯ ◆ ❙ ❋ ❣ ❍ ❉❍ ❴ ❍ ▲ ❋ ▼ ■❑ ❈ ❈ ❈ P P P P P P P P ❫ ▼ ❊ ❍ ❍ ❩ ❋ ❍ ■ ◆ ◗ ❴
■ ◗ ❊ ❍ ❋ ❍ ■ ❉ P ◆ ◗ ❊ ❍ ❉ ❋ ◗ ■ ❋ ❉ ❖ ■ ▼ ❊ ▲▼ ❴ ❘ ❊◆ ❪ ❸ ◗ ◆ ❚ P P P P P ❈ P P P P P P P P ◗ ❴ ❶ ◗ ♦ ❉ ♥ ❍ ❙ ❯ ◆ ❉❶ ❯ ❋ ❣ ❻ ❱ ❲ ❳ ❲❨ ❻ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ❈ ❨ ❲ ❞❥ t ❏ r ◗ ❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❯ ▼ ◆ ❚ ◗ ❋ ◗ ♥ ◗ ❉ ❍ ❖ ❯ ❴ ❍ ■ ❍ ❖ ❍ ■ ❍ ◆ ▲❍ ✇ ❈ ❞ ❖ ♦ ▼ ❘ ❚ ❍ ❖ ❯ ◆ ❍ ❋ ❣ ❯ ❉ ✉ ❴ ❯ ❺ ❍ ❋ ❣ ❍ ❚ ❍ ❖ ◗❘ ❴ ❋ ❯ ❉ ✈ ❸ ◗ ◆ ❚ ❋ ❣ ❍ ❖ ❯ ❴ ❍ ❍ ❩ ❯ ❉ ❋ ❉ ❸ ❈ ❉ ▲ ❣ ❍❚ ❘ ❴ ❍ ■ ❊ ◗ ❯ ❴ ❹ ❯ ◆ ❋ ❍ ■ ❖ ◗ ▲❍ ❙ ▼ ❍ ❉ ❋ ▼ ❏ r ❊ ▼ ❚ ❍ ❑ ❱ ❲ ❳ ❲❨ ◗ ❘ ❋ ❣ ❖ ❯ ❴ ❍ ➈ ❻ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■❑ ◗❘ ❋ ❣ ❻ ❈❱❲ ❳ ❲❨ ❊ ◗ ❯ ❴ ❹ ❉▼ ▲ ❺ ➈ ❻ ⑥ ④ ❞ s ✇ ⑨
❋ ❣ ⑨ ❋ ▼ ⑨ ❊ ◗ ❯ ❴ ❹ ❑ ❉▼ ▲ ❺➌❻ ❈❱❲ ❳ ❲❨ ❊ ◗ ❯ ❴ ❹ ❉▼ ▲ ❺ ➈ ❻ ❜ ❡ ❱ ✇ ❭ ➅ ➄ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-c

slide-44
SLIDE 44
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ⑤ ❍ ❖ ◗ ❘ ❴ ❋
■ ◗ ❊ ❍ ❋ ❍ ■ ♥ ▼ ❯ ❴ ❍ ■
◗ ❋ ❍ ❸ ❖ ▼ ❴ ❴ ▼❶ ❯ ◆ ❙ ❏ ◗ ❴ ❘ ❍ ❉ ◗ ■ ❍ ❯ ◆ ❘ ❉❍ ❯ ◆ ❈ ◗ ❴ ❴ ▼
■ ◗ ❋ ❯ ▼ ◆ ◗ ❴ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ⑨ ❣ ▼ ❉ ❋ ▲ ❴ ◗❘ ❉❍ ❉ ❸ ❘ ◆ ❴ ❍ ❉ ❉ ▼ ❏ ❍ ■ ■ ❯ ❚ ❚ ❍ ◆ ❯ ◆ ❋ ❣ ❍ ❊ ❑ ❑ ❈ ➂ ⑨ ➂ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❭ ❊ ❯ ❚ ❴ ❍ ❊ ◗ ❩ ➈ ➄ ❊ ❈ ❨ ◗ ❩ ❯ ❚ ❴ ❍ ❖ ▼ ■ ❫ ❨ ❜ ❱ ▲▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❯ ❉ ❵ ❊ ❯ ◆ ❘ ❋ ❍ ❉ ❸ ❚ ▼ ◆ ❿ ❋ ❍ ❩ ▲ ❍ ❍ ❚ ❋ ❣ ◗ ❋ ♣ ❈ ❈ ✉ ⑥ ◆ ❴ ❍ ❉ ❉ ❉ ❊ ❋
❣ ◗ ◆ ◆ ❍ ❴ ♥ ❍ ▲▼ ❊ ❍ ❉ ◗ ♥ ❯ ❋ ❉ ❊ ◗ ■ ❋ ❍ ■ ▼ ◆ ❣ ◗ ◆ ❚ ❴ ❯ ◆ ❙ ❯ ❋ ❑ ❑ ✈ ❈ ❈ ❍ ❩
■ ❍ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❉ ◗ ❖ ❋ ❍ ■ ♠ ❚ ◗ ♦ ❉ ❶ ❯ ❋ ❣ ▼ ❘ ❋ ❖ ❘ ❴ ❴ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❍ ❩
■ ♦ ➈ ♠ ❚ ❈ ❶ ❣ ❍ ◆ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ❙ ❍ ❋ ❉ ❋ ▼ ❋ ❣ ❍ ❍ ◆ ❚ ▼ ❖ ❋ ❣ ❍ ■ ❍ ❋ ■ ♦ ❉ ❍ ❹ ❘ ❍ ◆ ▲❍ ❸ ❈ ❯ ❋ ❉ ❋ ◗ ■ ❋ ❉ ▼ ❏ ❍ ■ ◗ ❋ ❉▼ ❊ ❍ ■ ◗ ◆ ❚ ▼ ❊
❯ ◆ ❋ ❯ ◆ ❋ ❣ ❍ ❊ ❯ ❚ ❚ ❴ ❍ ❑ ❜ ❣ ❍ ❈ ◆ ❘ ❊ ♥ ❍ ■ ❉ ◗ ■ ❍ ❖ ◗ ▲ ❋ ▼ ■ ❉ ▼ ❖ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❯ ◆ ❙ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ❑ ■ ❍ ❋ ■ ❯ ❍ ❉ ➈ ❻ ❭ ❭ r ♠ ❵ q ❭ ♠ r ❭ ♠ ➄ ❻ ❈ ◆ ▼ ❚ ❍ ❖ ◗❘ ❴ ❋ ❴ ❯ ❊ ❯ ❋ ❉ ▼ ◆ ❉ ❯ ❊ ❘ ❴ ❋ ◗ ◆ ❍ ▼ ❘ ❉ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋ ❉ ▼ ■ ❈ ▲ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❋ ▼ ◗
■ ❋ ❯ ▲ ❘ ❴ ◗ ■ ❣ ▼ ❉ ❋ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❪ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ r ❪ ❈ ❊ ◗ ❩ ❋ ◗ ➈ ❪ ❈ ❥ ❍ ❋ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ❋ ▼ ◗❘ ❋ ▼❚ ❍ ❋ ❍ ■ ❊ ❯ ◆ ❍ ❋ ❣ ❍ ❴ ❯ ❊ ❯ ❋ ❈ ✉ ▲▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ♥ ❍ ❴ ▼ ❶ ✈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-d

slide-45
SLIDE 45
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❰ ❰ ➂ ⑨ ➂ ❿ ❿ ▲ ▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ❈ ❈ ❉ ❺ ❍❶ ❯ ❉ ❊ ◗ ❩ ❯ ❊ ❘ ❊ ◆ ❘ ❊ ♥ ❍ ■ ▼ ❖ ❋ ■❯ ❍ ❉♥ ❍ ❖ ▼ ■ ❍ ❋ ❣ ❍ ■ ❍ ❋ ■ ♦ ❋ ❯ ❊ ❍ ❯ ❉ ❈ ◗ ❴ ❯ ❙ ◆ ❍❚ ❋ ▼ ◗ ❉ ❋ ◗ ◆ ❚ ◗ ■ ❚ ♥ ▼ ❘ ◆ ❚ ◗ ■ ♦ ✉ ❉ ❍ ▲▼ ◆ ❚ ❉ ❊ ▼ ❚ ❘ ❴ ▼ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ✈ ❑ ❉ ❺ ❍ ❶ ➈ ❭ ❈ ❚ ❍ ❖ ◗❘ ❴ ❋ ❘ ❯ ❚ ⑨ ❙ ❯ ❚ ▼ ❖ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋ ❉ ❘ ❉❍ ■ ➈ ■ ▼ ▼ ❋ ❙ ■ ▼ ❘
❚ ◗ ❍ ❊ ▼ ◆ ❈ ❈ ❲ ❖ ❴ ◗ ❙ ❋ ❍ ❴ ❴ ❯ ◆ ❙ ◗ ♥ ▼ ❘ ❋ ❹ ❘ ❍ ❘ ❍ P ▼ ■ ❚ ❍ ■ ❑ ❑ ❈ ◗ ❙ ❍ ▼ ■ ❚ ❍ ■ ▼ ❏ ❍ ■ ❖ ❍ ❍ ❚ ➈ ❭ ❵ ❪ ❈ ✉ ▲▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ♥ ❍ ❴ ▼ ❶ ✈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-e

slide-46
SLIDE 46
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❰ ❰ ➂ ⑨ ➂ ❿ ❿ ▲ ▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ❈ ❈ ❱ ▼ ❉ ❉ ❯ ♥ ❴ ❍ ◆ ❯ ▲ ❍ ⑨ ❉❍ ❋
❯ ▼ ■❯ ❋ ♦ ❏ ◗ ❴ ❘ ❍ ❉ ❯ ◆ ▲ ◗ ❉❍ ▼ ◆ ❍ ❶ ◗ ◆ ❋ ❉ ❋ ▼ ■ ❘ ◆ ❈ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ◗ ❋ ❣ ❯ ❙ ❣ ❍ ■ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❯ ◆ ❙
❯ ▼ ■ ❯ ❋ ♦ ❸ ❋ ❣ ◗ ◆ ❜ ❲
▼ ❙ ■ ◗ ❊ ❉ ✇ ❈ ❈ ❻
❯ ▼ ■❯ ❋ ♦ ❻ ❉ ❍ ❋ ❉ ❲ ❦ ❫ ❛ ❥ ⑥ ❜ ❢ ❏ ◗ ❴ ❘ ❍ ❸ ◗ ◆ ❚ ■ ❍ ❹ ❘ ❯ ■ ❍ ❉ ❉❍ ❋
❯ ▼ ■❯ ❋ ♦ ✉ r ✈ ❈ ❉ ♦ ❉ ❋ ❍ ❊ ▲ ◗ ❴ ❴ ❑ ❻ ◆ ❯ ▲❍ ❻ ❯ ❉ P P ❶ ❍ ❴ ❴ ✇ ◆ ❯ ▲❍ ✉ r ✈ ❈ ❈ ◆❯ ▲❍ ➈ r ❈ ❈
❯ ▼ ■ ❯ ❋ ♦ ➈ ❪ ❈ ❈ ❻ ❉ ♦ ❉
  • ■❯
▼ ■ ❯ ❋ ♦ ❻ ⑨ ❻ ❉ ♦ ❉ ◆ ❯ ▲ ❍ ❻ ❉❍ ❋ ❋ ❣ ❍ ❏ ◗ ❴ ❘ ❍ ❖ ▼ ■ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■
▼ ▲❍ ❉ ❉ ❈ ❯ ❋ ❉❍ ❴ ❖ ❸ ◗ ◆ ❚ ◗ ■ ❍ ◆ ▼ ❋ ❯ ◆ ❣ ❍ ■ ❯ ❋ ❍ ❚ ❖ ■ ▼ ❊ ❋ ❣ ❍ ❚ ❍ ❖ ◗ ❘ ❴ ❋ ♥ ▼ ❯ ❴ ❍ ■
◗ ❋ ❍ ❋ ▼ ❈ ▼ ❋ ❣ ❍ ■
■ ◗ ❊ ❍ ❋ ❍ ■ ♥ ❴ ▼ ▲ ❺ ❉ ❑ ❈ ❈ ❉ ♦ ❉ ◆ ❯ ▲ ❍ ➈ P r ❈ ❉ ♦ ❉
❯ ▼ ■ ❯ ❋ ♦ ➈ P r ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-f

slide-47
SLIDE 47
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ⑤ ❍ ❖ ❍ ■ ■ ❍ ❚ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❯ ❉ ❣ ◗ ◆ ❚ ❴ ❍ ❚ ♥ ♦ ❋ ❣ ❯ ❉ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋ ❑ ⑤ ❍ ❖ ❍ ■ ■ ◗ ❴ ❉ ◗ ■ ❍ ❴ ▼❶ ❈
❯ ▼ ■ ❯ ❋ ♦ ❸ ♥ ❘ ❋ ❋ ❣ ❍ ♦ ❋ ❍ ◆ ❚ ❋ ▼ ♥ ❘ ◆ ▲ ❣ ❘
❜ ❣ ❍ ❭ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❉ ❴ ▼ ❋ ❊ ❍ ◗ ◆ ❉ ❋ ❣ ❍ ■ ❍ ❶ ❯ ❴ ❴ ❈ ♥ ❍ ❴ ▼ ❋ ❉ ▼ ❖ ▲▼ ◆ ❋ ❍ ◆ ❋ ❯ ▼ ◆ ❸ ◗ ◆ ❚ ❋ ♦
▲ ◗ ❴ ▲ ❣ ❍ ▲ ❺ ❯ ◆ ❙ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ❉❶ ❯ ❴ ❴ ♥ ❍ ◗ ♥ ❯ ❋ ❣ ❯ ❙ ❣ ❍ ■ ❈ ❋ ❣ ◗ ◆ ❶ ❣ ◗ ❋ ❯ ❉ ❉
▲ ❯ ❖ ❯ ❍ ❚ ✉ ❚ ❘ ❍ ❋ ▼ ❶ ◗ ❯ ❋ ❯ ◆ ❙ ❖ ▼ ■ ◗ ❖ ■ ❍ ❍ ❉ ❴ ▼ ❋ ✈ ❑ ❣ ▼ ❴ ❚ ⑨ ➂ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❵ ❊ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❣ ▼ ❴ ❚ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-g

slide-48
SLIDE 48
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ❥ ▼ ▲ ◗ ❴ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ✇ ❖ ❯ ❴ ❍ ❉ ❸
▼ ▲❍ ❉ ❉ ❍ ❉ ❸ ❘ ❉ ❍ ■ ❊ ◗ ❯ ❴ ❈ ❈ ❱ ◗ ■ ◗ ❊ ❍ ❋ ❍ ■ ❴ ❍ ❉ ❉ ❻ ❴ ▼ ▲ ◗ ❴ ⑨ ❖ ❯ ❴ ❍ ➂ ❻ ❶ ❯ ❴ ❴ ❙ ❍ ❋ ❉ ◗ ❊ ❍ ❏ ◗ ❴ ❘ ❍ ❉ ❸ ◗ ❉ ❈ ❻ ❴ ▼ ▲ ◗ ❴ ⑨
➂ ❻ ❯ ❊ ❊ ❍ ❚ ❯ ◗ ❋ ❍ ❴ ♦ ❖ ▼ ❴ ❴ ▼❶ ❯ ◆ ❙ ❯ ❋ ❣ ◗ ❉ ♣ ❈ ❴ ▼ ▲ ◗ ❴ ⑨ ❖ ❯ ❴ ❍ ➂ ❴ ▼ ▲ ◗ ❴ ⑨
➂ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❵ ❊ ❯ ❚ ❴ ❍ ❊ ◗ ❩ ➈ ➃ ❊ ❈ ❛ ■ ❯ ❙ ❯ ◆ ◗ ❴ ❴ ♦ ❶ ❍ ❣ ◗ ❚ ♠ ❣ ▼ ❘ ■ ❍ ❩
■ ♦ ❸ ♥ ❘ ❋ ❯ ❖ ♦ ▼ ❘ ■ ❴ ▼ ▲ ◗ ❴ ❉ ♦ ❉ ❋ ❍ ❊ ❙ ▼ ❍ ❉ ❋ ▼ ❈ ◗ ❖ ❯ ❬ ❬ ✉ ❖ ■ ❍ ❍ ❬ ❍ ❉ ❸ ❋ ❣ ◗ ❋ ❯ ❉ ✈ ❸ ♦ ▼ ❘ ■ ❴ ▼ ▲ ◗ ❴ ❊ ◗ ❯ ❴ ❊ ◗ ♦ ❉ ❋ ◗ ■ ❋ ❋ ▼ ♥ ▼ ❘ ◆ ▲❍ ❈ ♥ ❍ ❖ ▼ ■ ❍ ◗ ◆ ♦ ♥ ▼❚ ♦ ◆ ▼ ❋ ❯ ▲❍ ❉ ◗ ◆ ♦ ❋ ❣ ❯ ◆ ❙ ❑ ❑ ❑ ❍ ❩
■ ♦ ➈ ♠ ❚ ❈ ❶ ◗ ◆ ❋ r ❪ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❉ ❴ ▼ ❋ ❉ ❸ ♥ ❘ ❋ ▼ ◆ ❴ ♦ ▼ ◆ ❍ ⑩ ❛ ❫ ❜ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ❵ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ❈ ❈ ⑤ ▼ ❨ ❞ ❨ ❢ ❋ ❍ ❩ ❋ ⑨
◗ ❯ ◆ ❤ t ❘ ▼ ❋ ❍ ❚ P ❱ ■ ❯ ◆ ❋ ◗ ♥ ❴ ❍ P ➀ ❋ ❍ ❩ ❋ ⑨
◗ ❯ ◆ ❤ q ❦ ❞ ❜ ❈ ▲ ▼ ◆ ❏ ❍ ■ ❉ ❯ ▼ ◆ ▼ ◆ ❖ ❴ ❯ ❙ ❣ ❋ ♣ ✉ ❡ ◗ ◆ ❿ ❋ ❘ ❉❍ ❡ ❧ ❳ ⑥ ❫ ❸ ◆ ▼ ■ ❱ ❳ ❛ ❡ ❨ ❲ ❞❥ ❣ ❍ ■ ❍ ♣ ✈ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❊ ◗ ❯ ❴ ♥ ▼ ❩ P q ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-h

slide-49
SLIDE 49
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ❜ ❣ ❯ ❉ ❖ ◗ ❴ ❴ ♥ ◗ ▲ ❺ ❻ ❴ ▼ ▲ ◗ ❴ ⑨ ➂ ❻ ▲ ◗ ◆ ♥ ❍ ❘ ❉❍ ❚ ❋ ▼ ♦ ❯ ❍ ❴ ❚ ❚ ❯ ❖ ❖ ❍ ■ ❍ ◆ ❋ ❴ ▼ ▲ ◗ ❴ ❈ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❊ ❍ ▲ ❣ ◗ ◆ ❯ ❉ ❊ P P ❊ ◗ ❯ ❴ ♥ ▼ ❩ ⑨ ❡ ❨ ⑥ ▲ ♦ ■ ❘ ❉ ❞ ❨ ❲ ❱ ❉❍ ■ ❏ ❍ ■ ⑨
▼ ▲ ❊ ◗ ❯ ❴ ❈ ❈ ❜ ❣ ❍ ❴ ◗ ❋ ❋ ❍ ■ ❋ ❶ ▼ ▲ ◗ ◆ ◆ ▼ ❋ ❚ ▼ ❚ ❍ ❴ ❯ ❏ ❍ ■ ❯ ❍ ❉ ❋ ▼ ❍ ❩
❯ ▲ ❯ ❋ ❖ ❯ ❴ ❍ ❉ ⑨
❉ ❸ ❈ ❋ ❣ ❘ ❉ ♦ ▼ ❘ ◆ ❍ ❍ ❚ ❋ ❣ ❍ ❻ ❴ ▼ ▲ ◗ ❴ ⑨ ❖ ❯ ❴ ❍ ➂ ❻ ◗ ◆ ❚ ❻ ❴ ▼ ▲ ◗ ❴ ⑨
➂ ❻ ◗ ♥ ▼ ❏ ❍ ❑ ❈ ❴ ▼ ▲ ◗ ❴ ⑨ ➂ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❵ ❊ ❯ ❚ ❴ ❍ ❊ ◗ ❩ ➈ ➃ ❊ ❈ ❛ ■ ❯ ❙ ❯ ◆ ◗ ❴ ❴ ♦ ❶ ❍ ❣ ◗ ❚ ♠ ❣ ▼ ❘ ■ ❍ ❩
■ ♦ ❸ ♥ ❘ ❋ ❯ ❖ ♦ ▼ ❘ ■ ❴ ▼ ▲ ◗ ❴ ❉ ♦ ❉ ❋ ❍ ❊ ❙ ▼ ❍ ❉ ❋ ▼ ❈ ◗ ❖ ❯ ❬ ❬ ✉ ❖ ■ ❍ ❍ ❬ ❍ ❉ ❸ ❋ ❣ ◗ ❋ ❯ ❉ ✈ ❸ ♦ ▼ ❘ ■ ❴ ▼ ▲ ◗ ❴ ❊ ◗ ❯ ❴ ❊ ◗ ♦ ❉ ❋ ◗ ■ ❋ ❋ ▼ ♥ ▼ ❘ ◆ ▲❍ ❈ ♥ ❍ ❖ ▼ ■ ❍ ◗ ◆ ♦ ♥ ▼❚ ♦ ◆ ▼ ❋ ❯ ▲❍ ❉ ◗ ◆ ♦ ❋ ❣ ❯ ◆ ❙ ❑ ❑ ❑ ❍ ❩
■ ♦ ➈ ♠ ❚ ❈ ❶ ◗ ◆ ❋ r ❪ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❉ ❴ ▼ ❋ ❉ ❸ ♥ ❘ ❋ ▼ ◆ ❴ ♦ ▼ ◆ ❍ ⑩ ❛ ❫ ❜ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ❵ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ❈ ✉ ▲▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ♥ ❍ ❴ ▼ ❶ ✈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-i

slide-50
SLIDE 50
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❰ ❰ ❴ ▼ ▲ ◗ ❴ ⑨ ➂ ❿ ❿ ▲▼ ◆ ❋ ❯ ◆ ❘ ❍ ❉ ❈ ❈ ⑤ ▼ ❨ ❞ ❨ ❢ ❋ ❍ ❩ ❋ ⑨
◗ ❯ ◆ ❤ t ❘ ▼ ❋ ❍ ❚ P ❱ ■ ❯ ◆ ❋ ◗ ♥ ❴ ❍ P ➀ ❋ ❍ ❩ ❋ ⑨
◗ ❯ ◆ ❤ q ❦ ❞ ❜ ❈ ▲ ▼ ◆ ❏ ❍ ■ ❉ ❯ ▼ ◆ ▼ ◆ ❖ ❴ ❯ ❙ ❣ ❋ ♣ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❊ ◗ ❯ ❴ ♥ ▼ ❩ P q ❻ ❈ ❛ ■ ❶ ❯ ❋ ❣ ❡ ❧ ❳ ⑥ ❫ ❉❍ ■ ❏ ❍ ■ ❋ ❣ ❍ ❖ ▼ ❴ ❴ ▼❶ ❯ ◆ ❙ ❊ ❯ ❙ ❣ ❋ ❚ ▼ ✇ ❈ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P q ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ▲ ♦ ■ ❘ ❉ ❻ ❈ ❛ ■ ❶ ❯ ❋ ❣ ❱ ❳ ❛ ❡ ❨ ❲ ❞❥ ◗ ❉ ❋ ❣ ❍ ❴ ▼ ▲ ◗ ❴ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ◗ ❙ ❍ ◆ ❋ ✇ ❈ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P q ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴
▼ ▲ ❊ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-j

slide-51
SLIDE 51
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❉ ❊ ❋
❯ ❉ ◗ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❶ ❣ ❍ ■ ❍ ❋ ❣ ❍ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❯ ❉❚ ▼ ◆ ❍ ❶ ❯ ❋ ❣ ▼ ❘ ❋ ▲ ❣ ❍ ▲ ❺ ❯ ◆ ❙ ◗ ❋ ❨ s ❍ ❉ ❤ ❈ ■ ◗ ❋ ❣ ❍ ■ ▼ ◆ ❴ ♦ ▼ ◆ ❲ ⑨ ❲ ❲ ❲ ❲ ✉ ◗ ❚ ❚ ■ ❍ ❉ ❉ ✈ ❍ ◆ ❋ ■ ❯ ❍ ❉ ✇ ❉ ❊ ❋
⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ➃ ❪ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ▲ ❉ ❊ ❋
P ❩ P ❉ ❻ ❈ ❫ ▼ ❊ ❍ ❋ ❯ ❊ ❍ ❉ ❶ ❍ ❊ ◗ ♦ ❶ ◗ ◆ ❋ ❋ ▼ ❱ ⑥ ④ ❜ ◗ ❴ ❴ ▼ ❘ ❋ ❋ ▼ ❉▼ ❊ ❍❶ ❣ ❍ ■ ❍ ❶ ❯ ❋ ❣ ▼ ❘ ❋ ■ ❍ ❙ ◗ ■ ❚ ❯ ◆ ❙ ❈ ▼ ◆ ❶ ❣ ◗ ❋ ❋ ❣ ❍ ■ ▼ ❘ ❋ ❯ ◆ ❙ ❉ ◗ ❯ ❚ ✇ ❈ ❈ ❉ ❊ ❋
➂ ❈ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❈ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ❈ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❝ ① ❭ ➃ r ❑ q ➃ ❑ ❭ r ♠ ❑ r ❵ ② P ❴ ❽❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
◆ ❋ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-k

slide-52
SLIDE 52
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❜ ❣ ❯ ❉ ❯ ❉ ◗ ❝ ❲ ❫ ❜ ❢ s ❱ ❞ ❳ ❧ ❋ ❍ ❉ ❋ ▲ ◗ ❉ ❍ ❑ ❑ ❐ ❯ ❴ ❴ ◗ ❴ ❶ ◗ ♦ ❉ ▲ ◗❘ ❉❍ ♥ ▼ ❘ ◆ ▲❍ ❸ ♥ ❋ ❶ ❑ ❈ ✉ ❋ ❣ ▼ ❉❍ ❊ ◗ ▲ ❣ ❯ ◆ ❍ ❉ ◗ ■ ❍ ▲ ❯ ❉ ▲▼ ■ ▼ ❘ ❋ ❍ ■ ❉ ❸ ❶ ❣ ❯ ▲ ❣ ❚ ▼ ◆ ❿ ❋ ❣ ◗ ❏ ❍ ❉ ❊ ❋
  • P
❉❍ ■ ❏ ❍ ■ ❉ ❑ ❑ ✈ ❉ ❊ ❋
➂ P ❙ ❶ ❑ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❪ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ❍ ❩
■ ♦ ➈ ❭ ❊ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❭ ❵ ❉ ■ ❍ ❋ ■ ❯ ❍ ❉ ➈ ❻ ❭ ❻ ❉ ❺ ❍ ❶ ➈ ❭ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ■ ❘ ❋ ❙ ❍ ■ ❉ ❑ ❍❚ ❘ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ❍ ❚ ❘ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ r ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-l

slide-53
SLIDE 53
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❉ ❊ ❋
➂ ❑ ▲▼ ❊ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ♠ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ❘ ❺ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ q ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ▲ ◗ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ❒ ❉❍ ❸ ❚ ❺ ❸ ❯ ❉ ❸ ◆ ▼ ❮ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ r ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ❚ ❍ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-m

slide-54
SLIDE 54
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❉ ❊ ❋
➂ ❑ ❙ ▼ ❏ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ❊ ❯ ❴ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❉ ❊ ❋
➂ ❑ ◆ ❍ ❋ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ P ❴ ❽❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
◆ ❍ ❋ ❻ ❉ ❊ ❋
➂ ❑ ▼ ■ ❙ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❭ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-n

slide-55
SLIDE 55
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❐ ❯ ❋ ❣ ❯ ◆ ❝ ⑥ ④ ❢ ❜ ❶ ❍ ❣ ◗ ❏ ❍ ◗ ♥ ❯ ❋ ❴ ▼ ◆ ❙ ❍ ■ ❍ ❩
■ ♦ ❑ ❑ ❉ ❊ ❋
➂ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ➃ ❈ ❊ ◗ ❩ ❋ ◗ ➈ r ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❭ ❪ ❊ ■ ❍ ❋ ■ ❯ ❍ ❉ ➈ ❻ ❭ ❭ r ♠ ❵ q ❭ ♠ r ❭ ♠ ➄ ❻ ❉ ❺ ❍ ❶ ➈ ❭ ❈ ⑤ ▼ ❝ ❛ ❳ ❡ ❢ ⑤ ❨ ❞ ❨ ❢ P ❚ ❍ ▲▼ ❚ ❯ ◆ ❙ ❯ ◆ ❋ ▼ ❡ P ❜ P ❢ ✇ q ❦ ❞ ❜ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
❈ ❐ ❯ ❋ ❣ ❯ ◆ ▼ ❘ ■ ▼ ■ ❙ ◗ ◆ ❯ ❬ ◗ ❋ ❯ ▼ ◆ ❶ ❍ ▲ ◗ ■ ❍ ❊ ▼ ■ ❍ ◗ ♥ ▼ ❘ ❋ ❉
❍ ❚ ◗ ◆ ❚ ▲ ◗
▲ ❯ ❋ ♦ ❋ ❣ ◗ ◆ ▲▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❈ ❜ ❣ ❍ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❏ ◗ ❴ ❘ ❍ ❉ ❣ ▼ ❘ ❴ ❚ ♥ ❍ ❴ ◗ ■ ❙ ❍ ■ ❋ ❣ ◗ ◆ ❋ ❣ ❍ ❏ ◗ ❴ ❘ ❍ ❘ ❉❍❚ ♥ ♦ ❉ ❊ ❋
➂ ❸ ❋ ▼ ◗ ❏ ▼ ❯ ❚ ❈ ❉▼ ❊ ❍
❋ ❍ ◆ ❋ ❯ ◗ ❴ ❉ ❋ ◗ ❋ ❍ ◗ ◆ ❚
◗ ❉❍
▼♥ ❴ ❍ ❊ ❉ ❯ ◆ ❋ ❣ ❍ ❹ ❘ ❍ ❘ ❍ ❉ ❑ ❉ ❊ ❋
➂ ❑ ❖ ❯ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ r ❪ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❭ ❪ ❊ ■ ❍ ❋ ■ ❯ ❍ ❉ ➈ ❻ ❭ ❭ r ♠ ❵ q ❭ ♠ r ❭ ♠ ➄ ❻ ❉ ❺ ❍ ❶ ➈ ❭ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-o

slide-56
SLIDE 56
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❈ ❜ ❣ ❍ ❉ ❍ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❉❶ ❯ ❴ ❴ ❙ ▼ ▼ ◆ ❴ ♦ ❯ ◆ ❋ ▼ ❋ ❣ ❍ ❹ ❘ ❍ ❘ ❍ ❸ ◗ ◆ ❚ ◆ ❍ ❍❚ ❍ ❩
❯ ▲ ❯ ❋ ❈ ❫ ❨ ❜ ❱ ❊ ❍ ❚ ❯ ◗ ❋ ❍ ❚ ❢ ❜ ❳ ④ ■ ❍ ❹ ❘ ❍ ❉ ❋ ❸ ♥ ❍ ❖ ▼ ■ ❍ ❋ ❣ ❍ ♦ ♥ ❍ ▲▼ ❊ ❍ ❖ ❴ ❘ ❉ ❣ ❍ ❚ ▼ ❘ ❋ ❑ ❈ ❉ ❊ ❋
  • P
❍ ❋ ■ ◆ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ r ❪ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❭ ❣ ■ ❍ ❋ ■ ❯ ❍ ❉ ➈ ❻ ❭ r ❻ ❹ ❘ ❍ ❘ ❍ ▼ ◆ ❴ ♦ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ P ❴ ❽❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
  • P
❍ ❋ ■ ◆➌❻ ❈ ❡ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❉ ❋ ▼ ❋ ❣ ❍ ▼ ❘ ❋ ❉ ❯ ❚ ❍ ❉ ❣ ▼ ❘ ❴ ❚ ◆ ❿ ❋ ❚ ❘
❯ ▲ ◗ ❋ ❍ ❍ ❖ ❖ ▼ ■ ❋ ❉▼ ❶ ❍ ▼ ◆ ❴ ♦ ◗ ❴ ❴ ▼❶ ▼ ◆ ❍ ❈
■ ❚ ❍ ❉ ❋ ❯ ◆ ◗ ❋ ❯ ▼ ◆❑ ❉ ❊ ❋
➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ➃ ➃ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ❵ ❪ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ ❋
  • P
❫ ⑨ ▼
⑨ ❊ ◗ ❯ ❴ ⑨ ❉ ❊ ❋
  • P
❋ ❴ ❉ ❑ ▲▼ ◆❖ P ❉ ❻ ❈ P ❴ ❽ ❒ ❥ ❛ ⑦ ⑤ ❞ ❳ ❮ ⑨ ❉ ❊ ❋
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-p

slide-57
SLIDE 57
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❢ ■ ■ ▼ ■ ❊ ❍ ❉ ❉ ◗ ❙ ❍ ❉ ❑ ⑤ ❍ ❴ ❯ ❏ ❍ ■ ♦ ▲ ◗ ◆ ♥ ❍ ■ ❍ ❋ ■ ❯ ❍ ❚ ◗ ❋ ❴ ❍ ❯ ❉ ❘ ■ ❍ ❑ ❍ ■ ■ ▼ ■ ⑨ ➂ ❯ ◆ ❋ ❍ ■ ❏ ◗ ❴ ➈ ❵ ❊ ❯ ❚ ❴ ❍ ❊ ◗ ❩ ➈ r ❊ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❵ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❍ ■ ■ ▼ ■ ❊ ◗ ❯ ❴ ❈ ⑥ ⑥ ❡ ❱ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❑ ❜ ❣ ❍ ❻ ❉ ❊ ❻ ❋ ■ ◗ ◆ ❉
■ ❋ ◗ ❙ ❍ ◆ ❋
▲ ❺ ❉ ❋ ❣ ❍ ❖ ❯ ■ ❉ ❋ ❣ ▼ ❉ ❋ ❯ ❋ ❉❍ ❍ ❉ ◗ ◆ ❚ ❈ ❶ ❯ ❴ ❴ ❉❍ ❴ ❍ ▲ ❋ ❖ ❘ ■ ❋ ❣ ❍ ■ ■ ❍ ▲ ❯
❍ ◆ ❋ ◗ ❚ ❚ ■ ❍ ❉ ❉❍ ❉ ❶ ❯ ❋ ❣ ❋ ❣ ◗ ❋ ❣ ▼ ❉ ❋ ▼ ◆ ❴ ♦ ❑ ❐ ❍ ❋ ❍ ❴ ❴ ❈ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ❋ ❣ ❯ ❉❶ ❯ ❋ ❣ ❋ ❣ ❍❼❻ ♥ ♦ ❣ ▼ ❉ ❋ ❻ ♥ ▼ ▼ ❴ ❍ ◗ ◆ ❸ ❋ ▼ ◗ ❏ ▼ ❯ ❚ ◗ ❉ ❋ ◗ ❙ ❙ ❍ ■ ❍ ❚ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❈ ❍ ❖ ❖ ❍ ▲ ❋ ❯ ❖ ❋ ❣ ❍ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■ ❣ ◗ ❉ ❋ ▼ ❚ ❯ ❉ ▲ ▼ ❏ ❍ ■ ❋ ❣ ❯ ❉ ▼ ◆ ❯ ❋ ❉ ▼❶ ◆❑ ❘ ❘ ▲
➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❵ ▲ ▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P q ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❘ ❘ ▲
❈ ④ ❍❶ ❉❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❑ ⑩ ▼ ❉ ❋ ◆ ◗ ❊ ❍ ❯ ❉ ◗ ❴ ❶ ◗ ♦ ❉ ❋ ❣ ❍ ❉ ◗ ❊ ❍ ❣ ❍ ■ ❍ ❑ ❘ ❉❍ ◆ ❍ ❋ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ r ▲ ▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P q ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❘ ❉ ❍ ◆ ❍ ❋ ❻ ❈ ⑥ ❦ ❡ ❢ ❲ ④ s ❑ ➄ ❪ ❪ ❙ ◗ ❋ ❍❶ ◗ ♦ ❑ ❫ ❍ ❍ ▲▼ ❊ ❊ ❍ ◆ ❋ ◗ ❋ ⑥ ⑥ ❡ ❱ ❑ ❍ ◗ ◆ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ▲ ▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❍ ◗ ◆ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-q

slide-58
SLIDE 58
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❦ ❯ ❋ ❦ ❘ ▲ ❺ ❍ ❋ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❯ ❋ ♥ ❘ ▲ ❺ ❍ ❋ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ❭ ▲ ▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❯ ❋ ♥ ❘ ▲ ❺ ❍ ❋ ❻ ❉ ❊ ❋
❶ P ➂ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ❪ ❊ ◗ ❩ ■ ❯ ◆ ❙ ➈ ♠ ❪ ▲ ▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P q ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-r

slide-59
SLIDE 59
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.conf”

❈ ❦❞ ❜ ④ ❢ ❜ ❚ ❍ ❴ ❯ ❏ ❍ ■ ♦ ❊ ❍ ❋ ❣ ▼ ❚ ❉ ❚ ❍ ❖ ■ ❋ ❭ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❚ ❍ ❖ ■ ❋ ❭ ❻ ♥ ❉ ❊ ❋
⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❉ ❊ ❋
❻ ♥ ❉ ❊ ❋
◆ ❚ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❉ ❊ ❋
◆ ❚ ❻ ♥ ❉ ❊ ❋
■ ❖ ▲ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❉ ❊ ❋
❻ ♥ ❉ ❊ ❋
◆ ❚ ■ ❖ ▲ ⑨ ➂ ❊ ◗ ❩ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ➈ ♠ ▲▼ ❊ ❊ ◗ ◆ ❚ ➈ ❻ ❉ ❊ P ▲ ❽ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ♥ ❉ ❊ ❋
◆ ❚ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

29-s

slide-60
SLIDE 60
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler/mailq”

The scheduler has so called “mailq” service port listening for administrative in- terface connections. Earlier days it was just listing several in-core tables whoever wanted to know. These days the “mailq-v2” is fully capable to execute various administrative func- tions, least of which are “mailq” queue displays. Due to the inherent security problems in this kind of interfaces, an APOP-like user authentication has been added to the protocol, and each contacting address can be matched against IP-address/mask address mask (IPv4 and IPv6).

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

30

slide-61
SLIDE 61
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “mailq -Q”

The mailq is ZMailer’s tool for asking scheduler’s queue status. Asking queue overview:

◆❯ ▲ P r ❑ ❪ ♠ ❈ ❊ ◗ ❯ ❴ ❹ P t ❉ ❊ ❋
➂ ❑ ▲▼ ❊ ⑨ ❪ ❉ ❊ ❋
❙ ▼ ❴ ❖ ❍ ■ ❉ ❴ ❯ ❉ ❋ ❑ ▲▼ ❊ ⑨ ❪ ❳ ➈ ❭ ❲ ➈ ③ ➄ t ❲ ➈ ❭ ❚ r ❪ ❣ ❉ ❊ ❋
❋ ❣ ❍ ❙ ◗ ❊ ♥ ❴ ❯ ◆ ❙ ■ ❍
■ ❋ ❑ ▲▼ ❊ ⑨ ❪ ❳ ➈ ❭ ❲ ➈ ③ ❵ t ❲ ➈ ❭ ❚ r ❪ ❣ ❜ ❣ ■ ❍ ◗ ❚ ❉ ✇ r ❨ ❉ ❙ ❉ ✇ r ❱ ■ ▼ ▲ ❉ ✇ ❪ ❞ ❚ ❴ ❍ ✇ ❪ ❱ ❴ ❯ ❊ ✇ ❭ ➃ ❝ ❴ ❯ ❊✇ ❭ ❵ ❜ ❴ ❯ ❊✇ ❭ ❉ ❊ ❋
➂ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ⑨ ❪ ❉ ❊ ❋
❏ ❯ ❚ ❍ ▼ ❴ ◗ ♥ P ❍ ❑ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ⑨ ❪ ❳ ➈ ❭ ❲ ➈ ❵ ➅ ❐ ➈ ❭ ❪ ➃ ❪ ➃ ❉ t ❲ ➈ r ❚ r ❭ ❊ ♠ ➄ ❉ ❜ ❣ ■ ❍ ◗ ❚ ❉ ✇ ❭ ❨ ❉ ❙ ❉ ✇ ❭ ❱ ■ ▼ ▲ ❉ ✇ ❪ ❞ ❚ ❴ ❍ ✇ ❪ ❱ ❴ ❯ ❊ ✇ ➃ ❝ ❴ ❯ ❊✇ ❭ ❵ ❜ ❴ ❯ ❊✇ ♠ ✐ ❯ ❚ ❉ ✇ ❭ ❞ ❚ ❴ ❍ ✇ ❭ ❨ ❉ ❙ ❉ ✇ ③ ❜ ❣ ■ ❚ ❉ ✇ ➄ ❳ ▲
❋ ❉ ✇ ③ ⑥
❯ ❊ ❍ ✇ ❭ ➄ ❚ ❭ ❪ ❊ q ❉ ❨ ❉ ❙ ❉ ❯ ◆ ❭ ❵ ❪ ③ ♠ ▼ ❘ ❋ ❭ ❵ ❪ ❵ ➅ ❉ ❋ ▼ ■ ❍ ❚ ③ ❳ ▲
❋ ❉ ❯ ◆ r ➃ ❭ ♠ ➃ ▼ ❘ ❋ r ➃ ❭ ♠ ♠ ❉ ❋ ▼ ■ ❍❚ ③ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

31

slide-62
SLIDE 62
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “mailq (no -Q)”

The mailq is ZMailer’s tool for asking scheduler’s queue status. Asking the individual messages:

◆❯ ▲ P r ❑ ❪ ♠ ❈ ❊ ◗ ❯ ❴ ❹ ❉ ❊ ❋
❙ ▼ ❴ ❖ ❍ ■ ❉ ❴ ❯ ❉ ❋ ❑ ▲▼ ❊✇ t ⑨ r q ③➃ ➄ P ❭ ➅ ❭ r ➅ ✇ ✉ ③ ➄ ❋ ■ ❯ ❍ ❉ ❸ ❍ ❩
■ ❍ ❉ ❯ ◆ ❭ ❚ ♠ ❣ ✈ ➍ ❉ ❊ ❋
❵ ❪ ❪ ✉ ▲▼ ◆ ◆ ❍ ▲ ❋ ❋ ▼ ❉
❊ ❊ ❯ ❋ ❑ ▲▼ ❊ ① r ➄ ❑ r q ❑ ❭ ❪ ❪ ❑ ❭ r ❵ ➱ r ❵ ➱ ❭ ➃ ♠ ❑ ❭ ③ ③ ❑ ❪ ❑ ❭ ➄ ❵ ➱ ③ ♠ q ❭ ❭ ② ✇ ➍ ❡ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❋ ❯ ❊ ❍ ❚ ▼ ❘ ❋ ✈ ❉ ❊ ❋
❋ ❣ ❍ ❙ ◗ ❊ ♥ ❴ ❯ ◆ ❙ ■ ❍
■ ❋ ❑ ▲▼ ❊ ✇ ✐ ⑨ ❭ r ➄ ♠ q P ❭ ➅ ❭ r q ✇ ✉ ③ ❵ ❋ ■ ❯ ❍ ❉ ❸ ❍ ❩
■ ❍ ❉ ❯ ◆ ❭ ❚ ♠ ❣ ✈ ➍ ❉ ❊ ❋
❵ ❪ ❪ ✉ ▲▼ ◆ ◆ ❍ ▲ ❋ ❋ ▼ ❖ ❘ ❋ ❘ ■ ❍ ❉ ❯ ❋ ❍ ❑ ■ ❍ ❙ ❯ ❉ ❋ ❍ ■❑ ▲▼ ❊ ① r ❪ ➃ ❑ ③➅ ❑ ❵ ❪ ❑ r ❪ ♠ ➱ r ❵ ➱ ❭ ➃ ♠ ❑ ❭ ③ ③ ❑ ❪ ❑ ❭ ➄ ❵ ➱ ➄ ❵ q ♠ ➄ ② ✇ ➍ ❡ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ❋ ❯ ❊ ❍ ❚ ▼ ❘ ❋ ✈ ❉ ❊ ❋
❏ ❯ ❚ ❍ ▼ ❴ ◗ ♥ P ❍ ❑ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ✇ ✐ ⑨ r q ➅ ❭ ➄ P ❭ ➅ ❭ r ➅ ✇ ✉ ❭ ➃ ❋ ■ ❯ ❍ ❉ ❸ ❍ ❩
■ ❍ ❉ ❯ ◆ r ♠ ❣ r q ❊ r ❭ ❉ ✈ ➍ ❉ ❊ ❋
❵ ❪ ❪ ✉ ▲ ▼ ◆ ◆ ❍ ▲ ❋ ❋ ▼ ❏ ❯ ❚ ❍ ▼ ❴ ◗ ♥ P ❍ ❑ ❖ ❘ ◆ ❍ ❋ ❑ ❖ ❯ ① ❭ ➃ ♠ ❑ ❭ ③ ③ ❑ ❪ ❑ ❵ ❪ ➱ r ❵ ➱ ❭ ➃ ♠ ❑ ❭ ③ ③ ❑ ❪ ❑ ❭ ➄ ❵ ➱ ③ ♠ q ❪ r ② ✇ ➍ ❡ ▼ ◆ ◆ ❍ ▲ ❋ ❯ ▼ ◆ ■ ❍ ❖ ❘ ❉ ❍ ❚ ✈ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

32

slide-63
SLIDE 63
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: “scheduler.auth”

❈ ❈❲ ❱ ❛ ❱ P ❴ ❯ ❺ ❍ ◗❘ ❋ ❣ ❍ ◆ ❋ ❯ ▲ ◗ ❋ ❯ ▼ ◆ ▲▼ ◆ ❋ ■ ▼ ❴ ❖ ❯ ❴ ❍ ❖ ▼ ■ ❋ ❣ ❍ ❷ ❨ ◗ ❯ ❴ ❍ ■ ❉ ▲ ❣ ❍ ❚ ❘ ❴ ❍ ■❑ ❈ ❈ ❝ ❯ ❍ ❴ ❚ ❉ ◗ ■ ❍ ❚ ▼ ❘ ♥ ❴ ❍ P ▲ ▼ ❴ ▼ ◆ ✉ ❿ ✇ ❿ ✈ ❉❍
■ ◗ ❋ ❍ ❚ ❸ ◗ ◆ ❚ ◗ ■ ❍ ✇ ❈ P ⑥ ❉❍ ■ ◆ ◗ ❊ ❍ ❈ P ❱ ❥ ❲ ❞ ④ ❜ ❢ s ❜ ❱ ❲ ❫ ❫ ❐ ❛ ❳ ⑤ ✉ ❶ ❣ ❯ ▲ ❣ ❊ ❘ ❉ ❋ ◆ ▼ ❋ ❣ ◗ ❏ ❍ ❚ ▼ ❘ ♥ ❴ ❍ P ▲▼ ❴ ▼ ◆ ❯ ◆ ❯ ❋ ♣ ✈ ❈ P ❢ ◆ ◗ ♥ ❴ ❍ ❚ ◗ ❋ ❋ ■ ❯ ♥ ❘ ❋ ❍ ❉ ✉ ❋ ▼ ❺ ❍ ◆ ❉ ❸ ❉
▲❍ ❉❍
■ ◗ ❋ ❍❚ ✈ ❈ P ❞ ❱ ◗ ❚ ❚ ■ ❍ ❉ ❉ ❲ ❡ ❥ ❊ ◗ ❉ ❺ ❉ ❈ ❈ ⑤ ❍ ❖ ◗ ❘ ❴ ❋ P ◗ ▲ ▲▼ ❘ ◆ ❋ ❖ ▼ ■ ❿ ❊ ◗ ❯ ❴ ❹ ❿ ❯ ❉ ❿ ◆ ▼♥ ▼ ❚ ♦ ❿ ❶ ❯ ❋ ❣
❉ ❉ ❶ ▼ ■ ❚ ❿ ◆ ▼♥ ▼ ❚ ♦ ❿ ❑ ❈ ❜ ❣ ❯ ■ ❚ ❖ ❯ ❍ ❴ ❚ ❯ ❉ ◗ ❋ ❋ ❣ ❍ ❊ ▼ ❊ ❍ ◆ ❋ ◗ ❐ ❛ ❳ ✐ ❞ ④ ❱ ❳ ❛ ⑦ ❳ ❢ ❫ ❫ ♣ ❈ ❈ ❫ ❢ ❡ ⑥ ❳ ❞ ❜❧ ④ ❛ ❜ ❢ ✇ ❈ ❛ ❐ ④ ❢ ❳ ✇ ■ ▼ ▼ ❋ ❈ ❱ ❳ ❛ ❜ ❢ ❡ ❜ ❞ ❛ ④ ✇ ❪ ③ ❪ ❪ ❈ ❈❲ ❋ ❋ ■❯ ♥ ❘ ❋ ❍ ❋ ▼ ❺ ❍ ◆ ❉ ✇ ❈ ❲ ❥ ❥ ❶ ❍ ❴ ❴ ❸ ◗ ❶ ❯ ❴ ❚ P ▲ ◗ ■ ❚ ❍ ◆ ◗ ♥ ❴ ❯ ◆ ❙ ❍ ❏ ❍ ■ ♦ ❋ ❣ ❯ ◆ ❙ ❈ ❫ ④ ❨ ❱ ❻ ❫ ⑩ ❛ ❐ ❫ ④ ❨ ❱ ❻ ❈ t t ❻ ❫ ⑩ ❛ ❐ t ⑥ ❢ ⑥ ❢ ❫ ⑩ ❛ ❳ ❜ ❻ ❈ ❜ ❜ ❻ ❫ ⑩ ❛ ❐ t ⑥ ❢ ⑥ ❢ ❜ ⑩ ❳ ❢ ❲ ⑤ ❫ ❻ ❸ ❻ ❫ ⑩ ❛ ❐ ❜ ⑩ ❳ ❢ ❲ ⑤ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ⑨ ❣ ▼ ❉ ❋ ❻ ❈ ❢ ❜ ❳ ④ ❻ ❢ ❜ ❳ ④ ❍ ❋ ■ ◆ ✃ ❉ ❋ ■ ❯ ◆ ❙ ❻ ❈ ✐ ❞❥ ❥ ❻ ✐ ❞❥ ❥ ❜ ⑩ ❳ ❢ ❲ ⑤ ▲ ❣ ◗ ◆ ◆ ❍ ❴ ❣ ▼ ❉ ❋ ❻ ❸ ❻ ✐ ❞❥ ❥ ❨ ❫ ⑦ ❉
▼ ❴ ❯ ❚ ❻ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

32-a

slide-64
SLIDE 64
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

“scheduler.auth

◆ ▼♥ ▼ ❚ ♦ ✇ ◆ ▼♥ ▼❚ ♦ ✇ ❫ ④ ❨ ❱ t t ❜ ❜ ❢ ❜ ❳ ④ ✇ ① ❯
  • ❏③
✇ ✇ ✇ ❭ ② ⑨ ❭ r q ❸ ① ❭ r ➅ ❑ ❪ ❑ ❪ ❑ ❭ ② ⑨ ♠ r ❸ ① ❭ ➃ ➄ ❑ r ❵ r ❑ ➅ ❪ ❑ ❭ ③ r ② ⑨ ♠ r ❈ ❶ ◗ ❋ ▲ ❣ ❍ ■ ✇ ❬ ❬ ❬ ❬ ❬ ✇ ❫ ④ ❨ ❱ t t ❜ ❜ ❢ ❜ ❳ ④ ✇ ① ❭ r ➅ ❑ ❪ ❑ ❪ ❑ ❭ ② ⑨ ♠ r ❈ ■ ▼ ▼ ❋ ✇ ❬ ❬ ❬ ❬ ❬ ❬ ❬ ✇ ❲ ❥ ❥ ✇ ① ❭ r ➅ ❑ ❪ ❑ ❪ ❑ ❭ ② ⑨ ♠ r ❍ ❋ ■ ◆ ✇ ❬ ❬ ❢ ❜ ❳ ④ ❬ ❬ ✇ ❢ ❜ ❳ ④ ✇ ① ❪ ❑ ❪ ❑ ❪ ❑ ❪ ② ⑨ ❪ ❸ ① ❯
  • ❏③
✇ ❪ ✇ ✇ ❪ ② ⑨ ❪ ✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

32-b

slide-65
SLIDE 65
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer subsystems: Transport Agents

The Transport Agents are a collection of programs intended to be driven by the scheduler to perform processing for the routed result addresses. These programs will produce diagnostics according to system internal protocols for each processed recipient address.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

33

slide-66
SLIDE 66
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer TA subsystems: “mailbox”

The mailbox is ZMailer’s local delivery subsystem used in normal cases for driv- ing deliveries to pipes and files (like to normal UNIX mailbox). Under some circumstances delivery to user’s mailbox can be done via different system-wide setup, like via “procmail”, or “cyrus”. See “local/*” clause at the “scheduler.conf” file for examples, and below for sm program. This program has no configuration file for itself.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

34

slide-67
SLIDE 67
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer TA subsystems: “sm”

The sm program is transport agent for driving various programs which are as- suming that they are driven under the sendmail(8)’s “

” (mailer) specifications. In the default “scheduler.conf” file there are several examples of such usages. This program has its own configuration file: “sm.conf”.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

35

slide-68
SLIDE 68
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer TA subsystems: “smtp”

The smtp program is transport agent for moving the email out of the system via the SMTP protocol. All features which are supported at the smtpserver are also supported here for

  • utbound email.

This program can also use SSL/TLS protocol to communicate with remote node, and thus to encrypt the transfer session hiding message content and receivers from weak eavesdroppers. When using SSL/TLS mode, the program needs a configuration file telling parameters for the used crypto subsystem. (Mainly info about the keys, and certificates.)

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

36

slide-69
SLIDE 69
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer TA subsystems: “error, hold”

The error transport agent constructs error messages from canned data material — to be used in unusual cases needing canned error reports. The hold transport agent will recycle the message back to the router after con- dition likely causing the problem during messages previous round via router has become solved. ZMailer used to do a lot of e.g. DNS lookups at the router before, and hold was the way to handle timeouts in the lookups. Nowadays it is needed very rarely.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

37

slide-70
SLIDE 70
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer Administrative tools

For system managers use the ZMailer suite has couple of tools:

“zmailer.sh” (a.k.a. “zmailer”) command which is all together the SystemV Init script for the system, and command interface for various submodules

“newdb” is script wrapper for “makedb”

“newdbprocessor” is what “zmailer newdb” runs when it sees configuration file: “$MAILVAR/db/dbases.conf”, otherwise that same program does a set

  • f classical pre-determined db setups.
✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

38

slide-71
SLIDE 71
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer Administrative tools (2)

“manual-expirer” is tool for managers having hundreds, or thousands of emails to some destination, and wanting to get rid of them all in one go.

“newaliases” and “newfqdnaliases” are scripts calling “newdb” with suitable parameters to regenerate “aliases” and “fqdnaliases” alias databases. Semi-

  • bsoleted by “newdbprocessor”.

“mboxpath” is system helper in case admin wants to scatter classical UNIX mailspool directory (“/var/spool/mail/”) located mailboxes into subdirectories. See “mailbox” documentation.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

39

slide-72
SLIDE 72
✁ ✂ ✄ ☎ ✆ ✝✟✞ ✠ ✡ ✡ ✡ ☛ ☞✌ ✍ ✎✏ ✑ ✒

ZMailer Administrative tools (3)

“vacation” – well, an obvious thing, isn’t it ?

“policy-builder.sh” rebuilds smtpserver input policy filter control database from its components.

“smtpserver-log-parser.pl” – can assist picking entire incoming SMTP ses- sions from the logfile (if its collection is active) with regular expression match- ing.

✌ ✍✓ ✓ ✎ ✝ ✍ ✒ ✔✎ ✕ ✖

matti.aarnio@sonera.fi

40