Add support for link deletion
doc/guile-netlink.texi
528 | 528 | @end example | |
529 | 529 | @end deffn | |
530 | 530 | ||
531 | + | @deffn {Scheme Procedure} link-del @var{device} | |
532 | + | Delete a link. @var{device} can contain the name of the link, as a string, | |
533 | + | or its index, as a number. | |
534 | + | @end deffn | |
535 | + | ||
531 | 536 | @bye |
ip/link.scm
28 | 28 | #:use-module (srfi srfi-1) | |
29 | 29 | #:use-module (srfi srfi-9) | |
30 | 30 | #:export (link-add | |
31 | + | link-del | |
31 | 32 | link-set | |
32 | 33 | link-show)) | |
33 | 34 | ||
… | |||
315 | 316 | (let ((answer (receive-and-decode-msg sock %default-route-decoder))) | |
316 | 317 | (close-socket sock) | |
317 | 318 | (answer-ok? (last answer))))) | |
319 | + | ||
320 | + | (define* (link-del device) | |
321 | + | (define request-num (random 65535)) | |
322 | + | ||
323 | + | (define message | |
324 | + | (make-message | |
325 | + | RTM_DELLINK | |
326 | + | (logior NLM_F_REQUEST NLM_F_ACK) | |
327 | + | request-num | |
328 | + | 0 | |
329 | + | (make-link-message | |
330 | + | AF_UNSPEC | |
331 | + | 0 | |
332 | + | (cond | |
333 | + | ((number? device) device) | |
334 | + | ((string? device) (link-name->index device))) | |
335 | + | 0 | |
336 | + | 0 | |
337 | + | '()))) | |
338 | + | ||
339 | + | ||
340 | + | (let ((sock (connect-route))) | |
341 | + | (send-msg message sock) | |
342 | + | (let ((answer (receive-and-decode-msg sock %default-route-decoder))) | |
343 | + | (close-socket sock) | |
344 | + | (answer-ok? (last answer))))) |