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))))) | |