First, handling of optional attributes depends on whether you knows them, not on whether a peer knows them.
Unknown optional transitive attributes are re-propagated, but with set 'partial' flag. For details, see bgp_export_attr() function.
Thanks for the answer I really appreciate it. Yeah form the RFC I get that unknown optional transitive attributes are re-propagated. I was more interest in acceptance part, the RFC 4271, section 5, 5th paragraph says: "... Paths with unrecognized transitive optional attributes SHOULD be accepted. ..." This SHOULD was confusing me. This take me to an other question, Given that I already know the destination d (that i learnt with an unknown optional transit attribute that I re-propagated with the 'partial' flag). At some point I receive an UPDATE for the destination d, and the only attribute that is different is the unknown optional transit one. At this point a bird node, in first place can recognize that only the unknown optional transit attribute has been changed? and in addiction, if it recognize it, the UPDATE will be re-propagated with the optional transit attribute and the flag 'partial', am I right? Thanks for the help, Mattia